--- android/TrainInfo/src/dk/thoerup/traininfo/StationList.java 2010/10/01 17:33:30 1150 +++ android/TrainInfo/src/dk/thoerup/traininfo/StationList.java 2011/05/02 11:54:17 1408 @@ -23,6 +23,7 @@ import static dk.thoerup.traininfo.R.string.stationlist_nostations; import static dk.thoerup.traininfo.R.string.stationlist_obtainedby; import static dk.thoerup.traininfo.R.string.stationlist_removefavorite; +import static dk.thoerup.traininfo.R.string.stationlist_satellitecount; import static dk.thoerup.traininfo.R.string.stationlist_search; import static dk.thoerup.traininfo.R.string.stationlist_stationadded; import static dk.thoerup.traininfo.R.string.stationlist_stationmap; @@ -30,7 +31,6 @@ import static dk.thoerup.traininfo.R.string.stationlist_stationsearch; import static dk.thoerup.traininfo.R.string.stationlist_twocharmin; import static dk.thoerup.traininfo.R.string.stationlist_waitforlocation; -import static dk.thoerup.traininfo.R.string.stationlist_satellitecount; import java.util.ArrayList; @@ -48,19 +48,20 @@ import android.os.Bundle; import android.os.Handler; import android.os.Message; +import android.util.Log; import android.view.ContextMenu; +import android.view.ContextMenu.ContextMenuInfo; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; -import android.view.ContextMenu.ContextMenuInfo; import android.view.View.OnCreateContextMenuListener; import android.widget.AdapterView; import android.widget.EditText; import android.widget.ListView; import android.widget.Toast; import dk.thoerup.android.traininfo.common.StationBean; -import dk.thoerup.android.traininfo.common.StationBean.StationEntry; +import dk.thoerup.android.traininfo.common.StationEntry; import dk.thoerup.traininfo.provider.ProviderFactory; import dk.thoerup.traininfo.provider.StationProvider; import dk.thoerup.traininfo.stationmap.GeoPair; @@ -149,7 +150,7 @@ switch (listType) { case ListNearest: - startLookup(); + startNearestLookup(); break; case ListSearch: showDialog(DLG_STATIONNAME); @@ -177,6 +178,8 @@ protected void onDestroy() { super.onDestroy(); + stationsFetched.removeMessages(0); + if (locationLookup != null) { locationLookup.stopSearch(); @@ -324,7 +327,7 @@ dialog.dismiss(); String search = et.getText().toString().trim(); if (search.length() >= 2) { - startNameSearch(search); + startNameLookup(search); } else { showMessageAndClose( getString(stationlist_twocharmin) ); } @@ -380,7 +383,7 @@ ///////////////////////////////////////////////////////////// // - public void startLookup() { + public void startNearestLookup() { dialogMessage = getString( stationlist_waitforlocation ); showDialog(DLG_PROGRESS); @@ -388,7 +391,7 @@ stationsFetched.sendEmptyMessageDelayed(0, 500); } - void startNameSearch(String name) { + void startNameLookup(String name) { dialogMessage = getString( stationlist_findbyname ); showDialog(DLG_PROGRESS); @@ -448,6 +451,11 @@ MessageBox.showMessage(StationList.this, getString(stationlist_nolocationprovider), true ); //StationList.this.finish(); return; + case IDLE: + Log.e("TrainInfo", "How did this happen ???"); + dismissDialog(DLG_PROGRESS); // how did we get here ?? + return; + } @@ -455,6 +463,7 @@ if (locationLookup.elapsedTime() >= GPS_TIMEOUT_MS) { dismissDialog(DLG_PROGRESS); + locationLookup.stopSearch(); if (locationLookup.hasLocation()) { @@ -466,7 +475,7 @@ builder.setPositiveButton(getString(generic_retry), new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int id) { dialog.dismiss(); - startLookup(); + startNearestLookup(); } }); @@ -531,7 +540,7 @@ switch (method) { case ByLocation: - stations = stationProvider.lookupStations(loc); + stations = stationProvider.lookupStationsByLocation(loc); break; case ByName: stations = stationProvider.lookupStationsByName(name); @@ -584,7 +593,7 @@ runner = new Runnable() { @Override public void run() { - startNameSearch( FindStationsTask.this.name ); + startNameLookup( FindStationsTask.this.name ); } }; break;