/[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 249 by torben, Mon Aug 10 06:22:54 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 75  public class DepartureList extends ListA Line 94  public class DepartureList extends ListA
94                  switch (id) {                  switch (id) {
95                  case DLG_DETAILS:                  case DLG_DETAILS:
96                          ((TextView)dialog.findViewById(R.id.Time)).setText(currentDeparture.getTime());                          ((TextView)dialog.findViewById(R.id.Time)).setText(currentDeparture.getTime());
97                            ((TextView)dialog.findViewById(R.id.Train)).setText(currentDeparture.getTrainNumber());
98                          ((TextView)dialog.findViewById(R.id.Destination)).setText( currentDeparture.getDestination());                          ((TextView)dialog.findViewById(R.id.Destination)).setText( currentDeparture.getDestination());
99                          ((TextView)dialog.findViewById(R.id.Origin)).setText(currentDeparture.getOrigin());                          ((TextView)dialog.findViewById(R.id.Origin)).setText(currentDeparture.getOrigin());
100                          ((TextView)dialog.findViewById(R.id.Location)).setText(currentDeparture.getLocation());                          ((TextView)dialog.findViewById(R.id.Location)).setText(currentDeparture.getLocation());
# Line 125  public class DepartureList extends ListA Line 145  public class DepartureList extends ListA
145                                  dlg.dismiss();                                  dlg.dismiss();
146                  }                  }
147          }          }
148            
149            View.OnClickListener mapLauncher = new View.OnClickListener() {
150                    @Override
151                    public void onClick(View v) {
152                            Uri uri = Uri.parse("geo:" + latitude + "," + longitude);
153                            startActivity( new Intent(Intent.ACTION_VIEW, uri));
154                    }
155            };
156            
157            
158            class DepartureFetcher extends AsyncTask<String, Void, Void> {
159    
160                    @Override
161                    protected void onPostExecute(Void result) {
162                            super.onPostExecute(result);
163                            
164                            adapter.setDepartures(departures);
165                            pgDialog.dismiss();
166                            
167                            if (departures.size() == 0)
168                                    MessageBox.showMessage(DepartureList.this, "No departures found");
169                    }
170    
171                    @Override
172                    protected Void doInBackground(String... params) {
173                            provider.lookupDepartures(params[0]);
174                            departures = provider.getDepartures();
175                            return null;
176                    }
177                    
178            }
179  }  }

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

  ViewVC Help
Powered by ViewVC 1.1.20