private OCRLanguageAdapter initLanguageList() { OCRLanguageAdapter adapter = new OCRLanguageAdapter(getApplicationContext(), false); List<OCRLanguage> languages = getAllOCRLanguages(this); adapter.addAll(languages); updateLanguageListWithDownloadManagerStatus(adapter); return adapter; }
protected void updateLanguageList(String lang, int status) { for (int i = 0; i < mAdapter.getCount(); i++) { final OCRLanguage language = (OCRLanguage) mAdapter.getItem(i); if (language.getValue().equalsIgnoreCase(lang)) { updateLanguage(language, status); return; } } }
protected void updateLanguageListByDisplayValue(String displayValue, int status) { for (int i = 0; i < mAdapter.getCount(); i++) { final OCRLanguage language = (OCRLanguage) mAdapter.getItem(i); if (language.getDisplayText().equalsIgnoreCase(displayValue)) { updateLanguage(language, status); return; } } }
private void updateLanguageListWithDownloadManagerStatus(OCRLanguageAdapter adapter) { if (adapter != null) { // find languages that are currently beeing downloaded Query query = new Query(); query.setFilterByStatus( DownloadManager.STATUS_RUNNING | DownloadManager.STATUS_PENDING | DownloadManager.STATUS_PAUSED); final DownloadManager dm = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); Cursor c = dm.query(query); int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_TITLE); while (c.moveToNext()) { final String title = c.getString(columnIndex); adapter.setDownloading(title, true); } adapter.notifyDataSetChanged(); c.close(); } }
private void updateLanguage(final OCRLanguage language, int status) { language.mDownloading = false; if (status == DownloadManager.STATUS_SUCCESSFUL) { language.mDownloaded = true; } else { language.mDownloaded = false; runOnUiThread( new Runnable() { @Override public void run() { String msg = getString(R.string.download_failed); msg = String.format(msg, language.mDisplayText); Toast.makeText(OCRLanguageActivity.this, msg, Toast.LENGTH_LONG).show(); } }); } mAdapter.notifyDataSetChanged(); }