3 |
import java.text.NumberFormat; |
import java.text.NumberFormat; |
4 |
import java.util.ArrayList; |
import java.util.ArrayList; |
5 |
import java.util.List; |
import java.util.List; |
6 |
|
import java.util.Locale; |
7 |
|
|
8 |
import android.app.Dialog; |
import android.app.Dialog; |
9 |
import android.app.ListActivity; |
import android.app.ListActivity; |
10 |
import android.app.ProgressDialog; |
import android.app.ProgressDialog; |
11 |
import android.content.Intent; |
import android.content.Intent; |
12 |
|
import android.location.Address; |
13 |
|
import android.location.Geocoder; |
14 |
import android.net.Uri; |
import android.net.Uri; |
15 |
import android.os.AsyncTask; |
import android.os.AsyncTask; |
16 |
import android.os.Bundle; |
import android.os.Bundle; |
17 |
|
import android.util.Log; |
18 |
import android.view.View; |
import android.view.View; |
19 |
import android.widget.ListView; |
import android.widget.ListView; |
20 |
import android.widget.TextView; |
import android.widget.TextView; |
57 |
String name = launchedBy.getStringExtra("name"); |
String name = launchedBy.getStringExtra("name"); |
58 |
((TextView) findViewById(R.id.stationName)).setText( name ); |
((TextView) findViewById(R.id.stationName)).setText( name ); |
59 |
|
|
60 |
String addr = launchedBy.getStringExtra("address"); |
((TextView) findViewById(R.id.stationAddr)).setText( "searching..." ); |
|
((TextView) findViewById(R.id.stationAddr)).setText( addr ); |
|
61 |
|
|
62 |
int stationId = launchedBy.getIntExtra("stationid", -1); |
int stationId = launchedBy.getIntExtra("stationid", -1); |
63 |
|
|
157 |
} |
} |
158 |
} |
} |
159 |
|
|
160 |
|
String lookupAddress(double latitude, double longitude) { |
161 |
|
|
162 |
|
Geocoder coder = new Geocoder(this, new Locale("da")); |
163 |
|
StringBuilder sb = new StringBuilder(); |
164 |
|
Log.i("lookupaddr", "" + latitude + "/" + longitude); |
165 |
|
try { |
166 |
|
List<Address> addressList = coder.getFromLocation(latitude, longitude, 1); |
167 |
|
Address addr = addressList.get(0); |
168 |
|
|
169 |
|
|
170 |
|
int max = addr.getMaxAddressLineIndex(); |
171 |
|
for (int i=0; i<max; i++) { |
172 |
|
if (i>0) |
173 |
|
sb.append(", "); |
174 |
|
|
175 |
|
sb.append(addr.getAddressLine(i)); |
176 |
|
} |
177 |
|
|
178 |
|
|
179 |
|
} catch (Exception e) { |
180 |
|
Log.e("DepartureList", "geocoder failed", e); |
181 |
|
} |
182 |
|
|
183 |
|
return sb.toString(); |
184 |
|
} |
185 |
|
|
186 |
class DialogDismisser implements View.OnClickListener { |
class DialogDismisser implements View.OnClickListener { |
187 |
|
|
188 |
Dialog dlg; |
Dialog dlg; |
208 |
|
|
209 |
class DepartureFetcher extends AsyncTask<Integer, Void, Void> { |
class DepartureFetcher extends AsyncTask<Integer, Void, Void> { |
210 |
|
|
211 |
|
String addr; |
212 |
@Override |
@Override |
213 |
protected void onPostExecute(Void result) { |
protected void onPostExecute(Void result) { |
214 |
super.onPostExecute(result); |
super.onPostExecute(result); |
216 |
adapter.setDepartures(departures); |
adapter.setDepartures(departures); |
217 |
pgDialog.dismiss(); |
pgDialog.dismiss(); |
218 |
|
|
219 |
|
|
220 |
|
((TextView) findViewById(R.id.stationAddr)).setText( addr ); |
221 |
|
|
222 |
if (departures.size() == 0) |
if (departures.size() == 0) |
223 |
MessageBox.showMessage(DepartureList.this, "No departures found"); |
MessageBox.showMessage(DepartureList.this, "No departures found"); |
224 |
} |
} |
225 |
|
|
226 |
@Override |
@Override |
227 |
protected Void doInBackground(Integer... params) { |
protected Void doInBackground(Integer... params) { |
228 |
|
addr = lookupAddress( latitude , longitude); |
229 |
provider.lookupDepartures(params[0]); |
provider.lookupDepartures(params[0]); |
230 |
departures = provider.getDepartures(); |
departures = provider.getDepartures(); |
231 |
return null; |
return null; |