diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-09-28 07:48:01 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-28 07:48:01 +0200 |
commit | 3835ed556b03a7246d238e1ee1a52f3aac29ec98 (patch) | |
tree | d0e976a9b0a8f9b9513f757c0f6a24e81dce69f5 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/offline/OfflineRegion.java | |
parent | 73baa527100a311a3ab4e056b138ff5fc0e63700 (diff) | |
download | qtlocation-mapboxgl-3835ed556b03a7246d238e1ee1a52f3aac29ec98.tar.gz |
6402 update offline metadata android (#6456)
* [android] - update offline metadata jni integration
* extract offline utils for reuse
* add test activity for update metadata
* fix requested signature changes
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.java | 59 |
1 files changed, 59 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 22cb034f08..f52f20083a 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 @@ -130,6 +130,26 @@ public class OfflineRegion { } /** + * This callback receives an asynchronous response containing the newly update + * OfflineMetadata in the database, or an error message otherwise. + */ + public interface OfflineRegionUpdateMetadataCallback { + /** + * Receives the newly update offline region metadata. + * + * @param metadata the offline metadata to u[date + */ + void onUpdate(byte[] metadata); + + /** + * Receives the error message. + * + * @param error the error message to be shown + */ + void onError(String error); + } + + /** * A region is either inactive (not downloading, but previously-downloaded * resources are available for use), or active (resources are being downloaded * or will be downloaded, if necessary, when network access is available). @@ -341,6 +361,43 @@ public class OfflineRegion { }); } + /** + * Update an offline region metadata from the database. + * <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 updateMetadata(@NonNull final byte[] bytes, @NonNull final OfflineRegionUpdateMetadataCallback callback) { + updateOfflineRegionMetadata(bytes, new OfflineRegionUpdateMetadataCallback() { + @Override + public void onUpdate(final byte[] metadata) { + getHandler().post(new Runnable() { + @Override + public void run() { + mMetadata = metadata; + callback.onUpdate(metadata); + } + }); + } + + @Override + public void onError(final String error) { + getHandler().post(new Runnable() { + @Override + public void run() { + callback.onError(error); + } + }); + } + }); + } + @Override protected void finalize() { try { @@ -369,4 +426,6 @@ public class OfflineRegion { private native void deleteOfflineRegion( OfflineRegionDeleteCallback deleteCallback); + private native void updateOfflineRegionMetadata(byte[] metadata, OfflineRegionUpdateMetadataCallback callback); + } |