diff options
author | Tobrun <tobrun@mapbox.com> | 2017-05-11 21:39:17 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-11 21:39:17 +0200 |
commit | 850b008a2fd872c6158502b821da17864711bb12 (patch) | |
tree | 49c544029e18b4f499fbda86b89ed31365fb9459 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk | |
parent | ad46d67aeb84b258668126dddc00c581f4808f3e (diff) | |
download | qtlocation-mapboxgl-850b008a2fd872c6158502b821da17864711bb12.tar.gz |
[android] - avoid crashing when deleting already deleted region (#8920)
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java | 48 |
1 files changed, 27 insertions, 21 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java index 2110e12b36..44bb2a05ee 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java @@ -37,6 +37,9 @@ public class OfflineRegion { //Region id private long id; + // delete status + private boolean isDeleted; + private OfflineRegionDefinition definition; /** @@ -353,28 +356,31 @@ public class OfflineRegion { * @param callback the callback to be invoked */ public void delete(@NonNull final OfflineRegionDeleteCallback callback) { - deleteOfflineRegion(new OfflineRegionDeleteCallback() { - @Override - public void onDelete() { - getHandler().post(new Runnable() { - @Override - public void run() { - callback.onDelete(); - OfflineRegion.this.finalize(); - } - }); - } + if (!isDeleted) { + deleteOfflineRegion(new OfflineRegionDeleteCallback() { + @Override + public void onDelete() { + isDeleted = true; + getHandler().post(new Runnable() { + @Override + public void run() { + callback.onDelete(); + OfflineRegion.this.finalize(); + } + }); + } - @Override - public void onError(final String error) { - getHandler().post(new Runnable() { - @Override - public void run() { - callback.onError(error); - } - }); - } - }); + @Override + public void onError(final String error) { + getHandler().post(new Runnable() { + @Override + public void run() { + callback.onError(error); + } + }); + } + }); + } } /** |