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

Annotation of /android/TrainInfo/src/dk/thoerup/traininfo/TimetableList.java

Parent Directory Parent Directory | Revision Log Revision Log


Revision 563 - (hide annotations) (download)
Thu Jan 28 09:10:44 2010 UTC (14 years, 4 months ago) by torben
File size: 4963 byte(s)
Actually make external string work :)
1 torben 362 package dk.thoerup.traininfo;
2    
3 torben 365
4     import java.util.ArrayList;
5     import java.util.List;
6    
7 torben 366 import android.app.Activity;
8 torben 365 import android.app.AlertDialog;
9     import android.app.Dialog;
10     import android.app.ProgressDialog;
11     import android.content.DialogInterface;
12 torben 364 import android.content.Intent;
13 torben 365 import android.os.AsyncTask;
14 torben 362 import android.os.Bundle;
15 torben 366 import android.widget.ListView;
16 torben 362 import android.widget.TextView;
17 torben 365 import dk.thoerup.traininfo.provider.ProviderFactory;
18     import dk.thoerup.traininfo.provider.TimetableProvider;
19     import dk.thoerup.traininfo.util.MessageBox;
20 torben 561 import static dk.thoerup.traininfo.R.string.*;
21 torben 362
22 torben 366 public class TimetableList extends Activity {
23 torben 364
24 torben 365 private static final int DLG_PROGRESS = 8000;
25 torben 364 DepartureBean departure;
26 torben 365 TimetableListAdapter adapter;
27     TimetableFetcher fetcher;
28     List<TimetableBean> timetables;
29 torben 364
30 torben 365 TimetableProvider provider;
31    
32     @SuppressWarnings("unchecked")
33 torben 362 @Override
34     protected void onCreate(Bundle savedInstanceState) {
35     super.onCreate(savedInstanceState);
36     setContentView(R.layout.timetablelist);
37 torben 364
38 torben 365 provider = ProviderFactory.getTimetableProvider();
39    
40     adapter = new TimetableListAdapter(this);
41    
42 torben 366 ListView lv = (ListView) findViewById(R.id.List);
43     lv.setAdapter(adapter);
44    
45    
46 torben 364 Intent launchedBy = getIntent();
47     departure = (DepartureBean) launchedBy.getSerializableExtra("departure");
48    
49     ((TextView)findViewById(R.id.Train)).setText(departure.getTrainNumber());
50     ((TextView)findViewById(R.id.Status)).setText(departure.getStatus());
51 torben 398 ((TextView)findViewById(R.id.Location)).setText(departure.getLocation());
52 torben 364 ((TextView)findViewById(R.id.Note)).setText(departure.getNote());
53 torben 563 ((TextView)findViewById(R.id.Updated)).setText(departure.getLastUpdateString(this));
54 torben 366
55 torben 365
56     if (savedInstanceState == null) {
57     startTimetableFetcher();
58     } else {
59     timetables = (List<TimetableBean>) savedInstanceState.getSerializable("timetables");
60     adapter.setTimetable(timetables);
61     }
62 torben 362 }
63 torben 365
64     @Override
65     public void onSaveInstanceState(Bundle outState)
66     {
67     dismissDialog(DLG_PROGRESS);
68     outState.putSerializable("timetables", (ArrayList<TimetableBean>) timetables);
69     }
70 torben 364
71     /* case DLG_DETAILS:
72 torben 362 DepartureBean currentDeparture = departures.get(selectedItemId);
73     ((TextView)dialog.findViewById(R.id.Time)).setText(currentDeparture.getTime());
74     ((TextView)dialog.findViewById(R.id.Train)).setText(currentDeparture.getTrainNumber());
75     ((TextView)dialog.findViewById(R.id.Destination)).setText( currentDeparture.getDestination());
76     ((TextView)dialog.findViewById(R.id.Origin)).setText(currentDeparture.getOrigin());
77     ((TextView)dialog.findViewById(R.id.Location)).setText(currentDeparture.getLocation());
78     ((TextView)dialog.findViewById(R.id.Updated)).setText(currentDeparture.getLastUpdateString());
79     ((TextView)dialog.findViewById(R.id.Status)).setText(currentDeparture.getStatus());
80     ((TextView)dialog.findViewById(R.id.Note)).setText(currentDeparture.getNote());
81     detailsDialog = dialog;
82     break;
83    
84     */
85 torben 365
86     @Override
87     protected void onPrepareDialog(int id, Dialog dialog) {
88     super.onPrepareDialog(id, dialog);
89    
90     switch (id) {
91     case DLG_PROGRESS:
92     //pgDialog = (ProgressDialog) dialog;
93     break;
94     }
95     }
96    
97     @Override
98     protected Dialog onCreateDialog(int id) {
99     switch (id) {
100     case DLG_PROGRESS:
101 torben 561 ProgressDialog dlg = new ProgressDialog(this);
102     dlg.setMessage( getString(timetablelist_fetchdata) );
103 torben 365 dlg.setCancelable(true);
104     return dlg;
105     default:
106     return super.onCreateDialog(id);
107     }
108     }
109    
110     void startTimetableFetcher() {
111     showDialog(DLG_PROGRESS);
112     fetcher = new TimetableFetcher();
113     fetcher.execute(departure.getTrainNumber());
114     }
115    
116     class TimetableFetcher extends AsyncTask<String,Void,Void> {
117    
118     boolean success;
119    
120     @Override
121     protected void onPostExecute(Void result) {
122     super.onPostExecute(result);
123     dismissDialog(DLG_PROGRESS);
124    
125    
126     if (success) {
127     adapter.setTimetable(timetables);
128     if (timetables.size() == 0) {
129 torben 561 MessageBox.showMessage(TimetableList.this, getString(timetablelist_nodata));
130 torben 365 }
131     } else { // communication or parse error
132     AlertDialog.Builder builder = new AlertDialog.Builder(TimetableList.this);
133 torben 561 builder.setMessage(getString(timetablelist_fetcherror));
134 torben 365 builder.setCancelable(true);
135 torben 561 builder.setPositiveButton(getString(generic_retry), new DialogInterface.OnClickListener() {
136 torben 365 public void onClick(DialogInterface dialog, int id) {
137     dialog.dismiss();
138     startTimetableFetcher();
139    
140     }
141     });
142 torben 561 builder.setNegativeButton(getString(generic_cancel), new DialogInterface.OnClickListener() {
143 torben 365 public void onClick(DialogInterface dialog, int id) {
144     dialog.dismiss();
145     }
146     });
147     builder.show();
148     }
149    
150     }
151    
152     @Override
153     protected Void doInBackground(String... arg0) {
154     String trainID = arg0[0];
155     success = provider.lookupTimetable(trainID);
156 torben 391 timetables = provider.getTimetable(trainID);
157 torben 365
158     return null;
159     }
160    
161     }
162 torben 362 }

  ViewVC Help
Powered by ViewVC 1.1.20