summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java50
1 files changed, 50 insertions, 0 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 f13128da63..c4ba363baf 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
@@ -430,6 +430,53 @@ public class OfflineRegion {
}
/**
+ * Same as the method above but skipping database file packing for performance reasons.
+ * <p>
+ * This method is useful optimization e.g. when several regions should be deleted in a row.
+ * </p>
+ * <p>
+ * When the operation is complete or encounters an error, the given callback will be
+ * executed on the main thread.
+ * </p>
+ * <p>
+ * After you call this method, you may not call any additional methods on this object.
+ * </p>
+ *
+ * @param callback the callback to be invoked
+ */
+ public void deleteAndSkipPackDatabase(@NonNull final OfflineRegionDeleteCallback callback) {
+ if (!isDeleted) {
+ isDeleted = true;
+ fileSource.activate();
+ deleteOfflineRegionSkipPackDatabase(new OfflineRegionDeleteCallback() {
+ @Override
+ public void onDelete() {
+ handler.post(new Runnable() {
+ @Override
+ public void run() {
+ fileSource.deactivate();
+ callback.onDelete();
+ OfflineRegion.this.finalize();
+ }
+ });
+ }
+
+ @Override
+ public void onError(final String error) {
+ handler.post(new Runnable() {
+ @Override
+ public void run() {
+ isDeleted = false;
+ fileSource.deactivate();
+ callback.onError(error);
+ }
+ });
+ }
+ });
+ }
+ }
+
+ /**
* Invalidate all the tiles from an offline region forcing Mapbox GL to revalidate
* the tiles with the server before using. This is more efficient than deleting the
* offline region and downloading it again because if the data on the cache matches
@@ -524,6 +571,9 @@ public class OfflineRegion {
private native void deleteOfflineRegion(OfflineRegionDeleteCallback callback);
@Keep
+ private native void deleteOfflineRegionSkipPackDatabase(OfflineRegionDeleteCallback callback);
+
+ @Keep
private native void updateOfflineRegionMetadata(byte[] metadata, OfflineRegionUpdateMetadataCallback callback);
@Keep