@Override public boolean onCreateOptionsMenu(Menu menu) { this.optionsMenu = menu; getMenuInflater().inflate(R.menu.stations_list, menu); if (jsonDownloadTask != null && (jsonDownloadTask.getStatus() == AsyncTask.Status.PENDING || jsonDownloadTask.getStatus() == AsyncTask.Status.RUNNING)) { setRefreshActionButtonState(true); } SearchManager manager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); searchView = (SearchView) menu.findItem(R.id.action_search).getActionView(); searchView.setSearchableInfo(manager.getSearchableInfo(getComponentName())); searchView.setOnQueryTextListener( new SearchView.OnQueryTextListener() { @Override public boolean onQueryTextSubmit(String s) { return false; } @Override public boolean onQueryTextChange(String s) { loadData(s); return true; } }); return true; }
@Override protected void onResume() { super.onResume(); if ((jsonDownloadTask != null && jsonDownloadTask.getStatus() == AsyncTask.Status.FINISHED)) { long dbLastUpdate = settings.getLong(PREF_KEY_DB_LAST_UPDATE, -1); long currentTime = System.currentTimeMillis(); /* update automatically if data are more than 10 min old */ if ((dbLastUpdate != -1) && ((currentTime - dbLastUpdate) > 600000)) { String networkId = settings.getString(PREF_KEY_NETWORK_ID, ""); String stationUrl = BASE_URL + "/" + networkId; jsonDownloadTask = new JSONDownloadTask(); jsonDownloadTask.execute(stationUrl); } } }