/[projects]/android/TrainInfo/src/dk/thoerup/traininfo/DepartureList.java
ViewVC logotype

Diff of /android/TrainInfo/src/dk/thoerup/traininfo/DepartureList.java

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 237 by torben, Sat Aug 8 19:02:20 2009 UTC revision 245 by torben, Sun Aug 9 19:40:05 2009 UTC
# Line 7  import android.app.Dialog; Line 7  import android.app.Dialog;
7  import android.app.ListActivity;  import android.app.ListActivity;
8  import android.app.ProgressDialog;  import android.app.ProgressDialog;
9  import android.content.Intent;  import android.content.Intent;
10    import android.net.Uri;
11  import android.os.AsyncTask;  import android.os.AsyncTask;
12  import android.os.Bundle;  import android.os.Bundle;
13  import android.view.View;  import android.view.View;
14  import android.widget.ListView;  import android.widget.ListView;
15  import android.widget.TextView;  import android.widget.TextView;
16    import android.widget.Toast;
17  import dk.thoerup.traininfo.provider.DepartureFactory;  import dk.thoerup.traininfo.provider.DepartureFactory;
18  import dk.thoerup.traininfo.provider.DepartureProvider;  import dk.thoerup.traininfo.provider.DepartureProvider;
19    import dk.thoerup.traininfo.util.MessageBox;
20    
21  public class DepartureList extends ListActivity {  public class DepartureList extends ListActivity {
22    
# Line 29  public class DepartureList extends ListA Line 32  public class DepartureList extends ListA
32                    
33          ProgressDialog pgDialog;          ProgressDialog pgDialog;
34                    
35            DepartureFetcher fetcher;
36            
37            double latitude,longitude;
38            
39          @Override          @Override
40          protected void onCreate(Bundle savedInstanceState) {          protected void onCreate(Bundle savedInstanceState) {
41                  super.onCreate(savedInstanceState);                  super.onCreate(savedInstanceState);
# Line 38  public class DepartureList extends ListA Line 45  public class DepartureList extends ListA
45                  setListAdapter(adapter);                  setListAdapter(adapter);
46                                    
47                  Intent launchedBy = getIntent();                  Intent launchedBy = getIntent();
48                    
49                    latitude = launchedBy.getDoubleExtra("latitude", 0.0);
50                    longitude = launchedBy.getDoubleExtra("longitude", 0.0);
51                    
52                  String name = launchedBy.getStringExtra("name");                  String name = launchedBy.getStringExtra("name");
53                  ((TextView) findViewById(R.id.stationName)).setText( name );                  ((TextView) findViewById(R.id.stationName)).setText( name );
54                                    
55                  String addr = launchedBy.getStringExtra("address");                  String addr = launchedBy.getStringExtra("address");
56                  ((TextView) findViewById(R.id.stationAddr)).setText( addr );                  ((TextView) findViewById(R.id.stationAddr)).setText( addr );
57                                    
58                    findViewById(R.id.header).setOnClickListener( mapLauncher );
59                                    
60                  NumberFormat format = NumberFormat.getNumberInstance();                  NumberFormat format = NumberFormat.getNumberInstance();
61                  format.setMaximumFractionDigits(1);                  format.setMaximumFractionDigits(1);
# Line 51  public class DepartureList extends ListA Line 63  public class DepartureList extends ListA
63                  int distance = launchedBy.getIntExtra("distance", 0);                  int distance = launchedBy.getIntExtra("distance", 0);
64                  ((TextView) findViewById(R.id.stationDistance)).setText( format.format((double)distance/1000.0) + " km." );                  ((TextView) findViewById(R.id.stationDistance)).setText( format.format((double)distance/1000.0) + " km." );
65                    
66                    
67                  showDialog(DLG_PROGRESS);                  showDialog(DLG_PROGRESS);
68                  provider = DepartureFactory.getProvider();                  provider = DepartureFactory.getProvider();
69                  provider.lookupDepartures(name);                  
70                  departures = provider.getDepartures();                  fetcher = new DepartureFetcher();
71                  adapter.setDepartures(departures);                  fetcher.execute(name);
                 pgDialog.dismiss();  
72          }          }
73                    
74        @Override
75        public void onSaveInstanceState(Bundle outState)
76        {
77            if (pgDialog.isShowing())
78                    pgDialog.dismiss();
79        }
80            
81          @Override          @Override
82          protected void onListItemClick(ListView l, View v, int position, long id) {          protected void onListItemClick(ListView l, View v, int position, long id) {
83                  super.onListItemClick(l, v, position, id);                  super.onListItemClick(l, v, position, id);
# Line 125  public class DepartureList extends ListA Line 144  public class DepartureList extends ListA
144                                  dlg.dismiss();                                  dlg.dismiss();
145                  }                  }
146          }          }
147            
148            View.OnClickListener mapLauncher = new View.OnClickListener() {
149                    @Override
150                    public void onClick(View v) {
151                            Uri uri = Uri.parse("geo:" + latitude + "," + longitude);
152                            startActivity( new Intent(Intent.ACTION_VIEW, uri));
153                    }
154            };
155            
156            
157            class DepartureFetcher extends AsyncTask<String, Void, Void> {
158    
159                    @Override
160                    protected void onPostExecute(Void result) {
161                            super.onPostExecute(result);
162                            
163                            adapter.setDepartures(departures);
164                            pgDialog.dismiss();
165                            
166                            if (departures.size() == 0)
167                                    MessageBox.showMessage(DepartureList.this, "No departures found");
168                    }
169    
170                    @Override
171                    protected Void doInBackground(String... params) {
172                            provider.lookupDepartures(params[0]);
173                            departures = provider.getDepartures();
174                            return null;
175                    }
176                    
177            }
178  }  }

Legend:
Removed from v.237  
changed lines
  Added in v.245

  ViewVC Help
Powered by ViewVC 1.1.20