summaryrefslogtreecommitdiff
path: root/altosdroid
diff options
context:
space:
mode:
authorKeith Packard <keithp@keithp.com>2016-05-10 23:02:09 -0700
committerKeith Packard <keithp@keithp.com>2016-05-11 23:22:15 -0700
commitc5f49d0ac254047f13c6c1ecfb5520eff72109ac (patch)
treea87418e536609b31cff0dc2f9f38509fd2dac4b1 /altosdroid
parent2e551e7c5f82a7e35d39e8f73e8e526e5484cd5d (diff)
altoslib: Allow map preloading to be aborted
Close the map preload dialog and it would be nice to stop loading map bits. Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'altosdroid')
-rw-r--r--altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java b/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java
index 0bf3aa10..ab5e433d 100644
--- a/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java
+++ b/altosdroid/src/org/altusmetrum/AltosDroid/PreloadMapActivity.java
@@ -69,6 +69,10 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
private ProgressBar progress;
+ private AltosMapLoader loader;
+
+ long loader_notify_time;
+
/* AltosMapLoaderListener interfaces */
public void loader_start(final int max) {
this.runOnUiThread(new Runnable() {
@@ -88,6 +92,7 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
}
public void loader_done(int max) {
+ loader = null;
this.runOnUiThread(new Runnable() {
public void run() {
progress.setProgress(0);
@@ -254,6 +259,9 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
}
private void load() {
+ if (loader != null)
+ return;
+
try {
double lat = latitude();
double lon = longitude();
@@ -264,7 +272,7 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
AltosDebug.debug("PreloadMap load %f %f %d %d %f %d\n",
lat, lon, min, max, r, t);
- new AltosMapLoader(map, this, lat, lon, min, max, r, t);
+ loader = new AltosMapLoader(map, this, lat, lon, min, max, r, t);
} catch (ParseException e) {
AltosDebug.debug("PreloadMap load raised exception %s", e.toString());
}
@@ -409,6 +417,9 @@ public class PreloadMapActivity extends Activity implements AltosLaunchSiteListe
protected void onDestroy() {
super.onDestroy();
+ if (loader != null)
+ loader.abort();
+
// Stop listening for location updates
((LocationManager) getSystemService(Context.LOCATION_SERVICE)).removeUpdates(this);
}