--- android/TrainInfo/src/dk/thoerup/traininfo/DepartureList.java 2009/08/10 18:48:24 257 +++ android/TrainInfo/src/dk/thoerup/traininfo/DepartureList.java 2009/09/11 12:24:53 319 @@ -3,14 +3,18 @@ import java.text.NumberFormat; import java.util.ArrayList; import java.util.List; +import java.util.Locale; import android.app.Dialog; import android.app.ListActivity; import android.app.ProgressDialog; import android.content.Intent; +import android.location.Address; +import android.location.Geocoder; import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; +import android.util.Log; import android.view.View; import android.widget.ListView; import android.widget.TextView; @@ -52,9 +56,11 @@ String name = launchedBy.getStringExtra("name"); ((TextView) findViewById(R.id.stationName)).setText( name ); + + String address = launchedBy.getStringExtra("address"); + ((TextView) findViewById(R.id.stationAddr)).setText( address ); - String addr = launchedBy.getStringExtra("address"); - ((TextView) findViewById(R.id.stationAddr)).setText( addr ); + int stationId = launchedBy.getIntExtra("stationid", -1); findViewById(R.id.header).setOnClickListener( mapLauncher ); @@ -70,7 +76,7 @@ fetcher = new DepartureFetcher(); if (savedInstanceState == null) { showDialog(DLG_PROGRESS); - fetcher.execute(name); + fetcher.execute(stationId); } else { departures = (List) savedInstanceState.getSerializable("departures"); adapter.setDepartures(departures); @@ -151,7 +157,7 @@ return super.onCreateDialog(id); } } - + class DialogDismisser implements View.OnClickListener { Dialog dlg; @@ -175,8 +181,10 @@ }; - class DepartureFetcher extends AsyncTask { + class DepartureFetcher extends AsyncTask { + boolean success; + String addr; @Override protected void onPostExecute(Void result) { super.onPostExecute(result); @@ -184,14 +192,19 @@ adapter.setDepartures(departures); pgDialog.dismiss(); - if (departures.size() == 0) - MessageBox.showMessage(DepartureList.this, "No departures found"); + if (success) { + if (departures.size() == 0) { + MessageBox.showMessage(DepartureList.this, "No departures found"); + } + } else { // communication or parse error + MessageBox.showMessage(DepartureList.this, "Error finding departures"); + } } @Override - protected Void doInBackground(String... params) { - provider.lookupDepartures(params[0]); - departures = provider.getDepartures(); + protected Void doInBackground(Integer... params) { + success = provider.lookupDepartures(params[0]); + departures = provider.getDepartures(params[0]); return null; }