--- android/TrainInfo/src/dk/thoerup/traininfo/DepartureList.java 2009/08/08 20:09:47 238 +++ android/TrainInfo/src/dk/thoerup/traininfo/DepartureList.java 2009/08/09 19:40:05 245 @@ -7,6 +7,7 @@ import android.app.ListActivity; import android.app.ProgressDialog; import android.content.Intent; +import android.net.Uri; import android.os.AsyncTask; import android.os.Bundle; import android.view.View; @@ -15,6 +16,7 @@ import android.widget.Toast; import dk.thoerup.traininfo.provider.DepartureFactory; import dk.thoerup.traininfo.provider.DepartureProvider; +import dk.thoerup.traininfo.util.MessageBox; public class DepartureList extends ListActivity { @@ -32,6 +34,8 @@ DepartureFetcher fetcher; + double latitude,longitude; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -41,12 +45,17 @@ setListAdapter(adapter); Intent launchedBy = getIntent(); + + latitude = launchedBy.getDoubleExtra("latitude", 0.0); + longitude = launchedBy.getDoubleExtra("longitude", 0.0); + String name = launchedBy.getStringExtra("name"); ((TextView) findViewById(R.id.stationName)).setText( name ); String addr = launchedBy.getStringExtra("address"); ((TextView) findViewById(R.id.stationAddr)).setText( addr ); + findViewById(R.id.header).setOnClickListener( mapLauncher ); NumberFormat format = NumberFormat.getNumberInstance(); format.setMaximumFractionDigits(1); @@ -62,6 +71,13 @@ fetcher.execute(name); } + @Override + public void onSaveInstanceState(Bundle outState) + { + if (pgDialog.isShowing()) + pgDialog.dismiss(); + } + @Override protected void onListItemClick(ListView l, View v, int position, long id) { super.onListItemClick(l, v, position, id); @@ -129,6 +145,14 @@ } } + View.OnClickListener mapLauncher = new View.OnClickListener() { + @Override + public void onClick(View v) { + Uri uri = Uri.parse("geo:" + latitude + "," + longitude); + startActivity( new Intent(Intent.ACTION_VIEW, uri)); + } + }; + class DepartureFetcher extends AsyncTask { @@ -140,7 +164,7 @@ pgDialog.dismiss(); if (departures.size() == 0) - Toast.makeText(DepartureList.this, "No departures found", Toast.LENGTH_LONG); + MessageBox.showMessage(DepartureList.this, "No departures found"); } @Override