--- android/TrainInfo/src/dk/thoerup/traininfo/StationList.java 2012/03/04 20:21:03 1708 +++ android/TrainInfo/src/dk/thoerup/traininfo/StationList.java 2012/03/06 11:02:04 1709 @@ -32,8 +32,6 @@ import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; -import android.content.SharedPreferences; -import android.content.SharedPreferences.Editor; import android.location.Location; import android.os.Bundle; import android.os.Handler; @@ -58,7 +56,7 @@ import dk.thoerup.traininfo.provider.StationProvider; import dk.thoerup.traininfo.stationmap.GeoPair; import dk.thoerup.traininfo.stationmap.StationMapView; -import dk.thoerup.traininfo.util.IntSet; +import dk.thoerup.traininfo.util.FavoritesHelper; import dk.thoerup.traininfo.util.MessageBox; public class StationList extends ListActivity { @@ -98,10 +96,9 @@ StationListAdapter adapter = null; FavoritesMenu contextMenu = new FavoritesMenu(); - IntSet favorites = new IntSet(); + FavoritesHelper favorites; WelcomeScreen.ListType listType; - SharedPreferences prefs; /////////////////////////////////////////////////////////////////////////////////////////// //Activity call backs @@ -111,6 +108,8 @@ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.stationlist); + + favorites = new FavoritesHelper(this); listType = (WelcomeScreen.ListType) getIntent().getSerializableExtra("type"); @@ -122,12 +121,6 @@ locationLookup = new LocationLookup(this); - - prefs = getSharedPreferences("TrainStation", 0); - String favoriteString = prefs.getString("favorites", ""); - if (! favoriteString.equals("") ) { - favorites.fromString(favoriteString); - } setTitle(); @@ -402,9 +395,9 @@ public void startFavoriteLookup() { - if (favorites.size() > 0) { + if (favorites.getSize() > 0) { - stations = stationProvider.lookupStationsByIds( favorites.toString() ); + stations = stationProvider.lookupStationsByIds( favorites.getString() ); getListView().invalidateViews(); adapter.setStations( stations ); @@ -513,7 +506,7 @@ selectedPosition = info.position; int stationID = stations.entries.get(selectedPosition).getId(); - if (!favorites.contains(stationID)) { + if (!favorites.hasFavorite(stationID)) { menu.add(0, FAVORITES_ADD, 0, getString(stationlist_addfavorite) ); } else { menu.add(0, FAVORITES_REMOVE, 0, getString(stationlist_removefavorite) ); @@ -526,11 +519,11 @@ int stationID = sb.getId(); if (item.getItemId() == FAVORITES_ADD) { - favorites.add(stationID); + favorites.addFavorite(stationID); Toast.makeText(StationList.this, getString(stationlist_stationadded), Toast.LENGTH_SHORT).show(); } else { - favorites.remove(stationID); + favorites.removeFavorite(stationID); Toast.makeText(StationList.this, getString(stationlist_stationremoved), Toast.LENGTH_SHORT).show(); @@ -539,9 +532,6 @@ adapter.notifyDataSetChanged(); } } - Editor ed = prefs.edit(); - ed.putString("favorites", favorites.toString()); - ed.commit(); } } -} \ No newline at end of file +}