--- android/TrainInfo/src/dk/thoerup/traininfo/TrainInfoList.java 2009/08/09 09:20:45 240 +++ android/TrainInfo/src/dk/thoerup/traininfo/TrainInfoList.java 2009/08/09 19:40:05 245 @@ -1,16 +1,16 @@ package dk.thoerup.traininfo; -import android.app.AlertDialog; import android.app.Dialog; import android.app.ListActivity; import android.app.ProgressDialog; -import android.content.DialogInterface; import android.content.Intent; +import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.widget.ListView; +import dk.thoerup.traininfo.util.MessageBox; public class TrainInfoList extends ListActivity { public static final int GOTLOCATION = 1; @@ -24,6 +24,7 @@ /** Called when the activity is first created. */ ProgressDialog dialog; StationLocator locator = null; + LocatorTask locatorTask = new LocatorTask(); boolean isRunning; @@ -33,6 +34,8 @@ super.onCreate(savedInstanceState); setContentView(R.layout.main); + //StationLocator.injectMockLocation(this); + adapter = new StationListAdapter(this); setListAdapter(adapter); @@ -41,6 +44,13 @@ startLookup(); } + @Override + public void onSaveInstanceState(Bundle outState) + { + if (dialog.isShowing()) + dialog.dismiss(); + } + @Override @@ -85,25 +95,28 @@ switch (msg.what) { case GOTLOCATION: dialog.setMessage("Finding nearby stations"); + locatorTask.execute(); break; case GOTSTATIONLIST: dialog.dismiss(); + if (locator.getStations().size() == 0) + MessageBox.showMessage(TrainInfoList.this,"Error loading station list!"); adapter.setStations( locator.getStations() ); break; case NOPROVIDER: dialog.dismiss(); - showMessageBox("No Location provider enabled. Plase enabled gps."); + MessageBox.showMessage(TrainInfoList.this,"No location provider enabled. Plase enable gps."); break; case FIXTIMEOUT: dialog.dismiss(); if (isRunning) { locator.abortLocationListener(); - showMessageBox("GPS fix timed out"); + MessageBox.showMessage(TrainInfoList.this,"GPS fix timed out"); } break; case LOOKUPSTATIONFAILED: dialog.dismiss(); - showMessageBox("Error on finding nearby stations"); + MessageBox.showMessage(TrainInfoList.this,"Error on finding nearby stations"); break; } @@ -129,16 +142,22 @@ startActivity(intent); } - public void showMessageBox(String message) { - AlertDialog.Builder builder = new AlertDialog.Builder(this); - builder.setMessage(message) - .setCancelable(false) - .setPositiveButton("OK", new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int id) { - dialog.dismiss(); - } - }) - .show(); + + class LocatorTask extends AsyncTask { + @Override + protected void onPreExecute() { + super.onPreExecute(); + } + + @Override + protected Void doInBackground(Void... params) { + locator.findNearestStations(); + return null; + } + @Override + protected void onPostExecute(Void result) { + super.onPostExecute(result); + } } } \ No newline at end of file