--- android/TrainInfo/src/dk/thoerup/traininfo/StationList.java 2009/10/27 12:33:05 472 +++ android/TrainInfo/src/dk/thoerup/traininfo/StationList.java 2009/10/27 13:39:28 473 @@ -81,7 +81,7 @@ FavoritesMenu contextMenu = new FavoritesMenu(); IntSet favorites = new IntSet(); - + boolean showingFavorites = false; SharedPreferences prefs; @@ -460,15 +460,21 @@ @Override protected Void doInBackground(Void... params) { - - if (method.equals(LookupMethod.ByLocation)) + + switch (method) { + case ByLocation: success = stationProvider.lookupStations(loc); - - if (method.equals(LookupMethod.ByName)) + break; + case ByName: success = stationProvider.lookupStationsByName(name); - - if (method.equals(LookupMethod.ByList)) + break; + case ByList: success = stationProvider.lookupStationsByIds(ids); + break; + default: + success = false; // not possible + } + Location dummy = new Location("gps"); List stations = stationProvider.getStations(); @@ -492,11 +498,32 @@ super.onPostExecute(result); dialog.dismiss(); + //set title + String title; + switch (method) { + case ByLocation: + title = "Traininfo DK - Nearby stations"; + break; + case ByName: + title = "Traininfo DK - Search"; + break; + case ByList: + title = "Traininfo DK - Favorites"; + break; + default: + title = "";//not possible + } + + StationList.this.setTitle(title); + //set title end + if (success) { if (stationProvider.getStations().size() == 0) MessageBox.showMessage(StationList.this, "No stations found!"); // this should not be possible !?! stations = stationProvider.getStations(); - adapter.setStations( stations ); + adapter.setStations( stations ); + + showingFavorites = method.equals(LookupMethod.ByList); } else { //communication or parse errors AlertDialog.Builder builder = new AlertDialog.Builder(StationList.this); @@ -555,8 +582,14 @@ favorites.add(stationID); Toast.makeText(StationList.this, "Station added", Toast.LENGTH_SHORT).show(); } else { + favorites.remove(stationID); Toast.makeText(StationList.this, "Station removed", Toast.LENGTH_SHORT).show(); + + if (showingFavorites) { + stations.remove(selectedPosition); + adapter.notifyDataSetChanged(); + } } Editor ed = prefs.edit(); ed.putString("favorites", favorites.toString());