diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2019-05-14 14:55:17 +0200 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2019-05-24 15:03:55 +0200 |
commit | 1bef3b7d1d877c67db051b33e0516b36acee700d (patch) | |
tree | b8c60eeb7ddc1c4aefb1cbb1cfd86740fd1a75bd /platform/android/MapboxGLAndroidSDK/src/main/java/com | |
parent | 46ef2d86d2065aaaa63e8c83c750e46c74932777 (diff) | |
download | qtlocation-mapboxgl-1bef3b7d1d877c67db051b33e0516b36acee700d.tar.gz |
[android] resume file source and wait for result to complete resources cache path change
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java | 30 |
1 files changed, 22 insertions, 8 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java index 1301c103f4..b3b7b61831 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/storage/FileSource.java @@ -312,8 +312,7 @@ public class FileSource { Context.MODE_PRIVATE).edit(); editor.putString(MAPBOX_SHARED_PREFERENCE_RESOURCES_CACHE_PATH, path); editor.apply(); - setResourcesCachePath(applicationContext, path); - callback.onSuccess(path); + internalSetResourcesCachePath(applicationContext, path, callback); } @Override @@ -326,11 +325,26 @@ public class FileSource { } } - private static void setResourcesCachePath(@NonNull Context context, @NonNull String path) { - resourcesCachePathLoaderLock.lock(); - resourcesCachePath = path; - resourcesCachePathLoaderLock.unlock(); - getInstance(context).setResourceCachePath(path); + private static void internalSetResourcesCachePath(@NonNull Context context, @NonNull String path, + @NonNull final ResourcesCachePathChangeCallback callback) { + final FileSource fileSource = getInstance(context); + fileSource.setResourceCachePath(path, new ResourcesCachePathChangeCallback() { + @Override + public void onSuccess(@NonNull String path) { + fileSource.deactivate(); + resourcesCachePathLoaderLock.lock(); + resourcesCachePath = path; + resourcesCachePathLoaderLock.unlock(); + callback.onSuccess(path); + } + + @Override + public void onError(@NonNull String message) { + fileSource.deactivate(); + callback.onError(message); + } + }); + fileSource.activate(); } private static boolean isPathWritable(String path) { @@ -388,7 +402,7 @@ public class FileSource { public native void setResourceTransform(final ResourceTransformCallback callback); @Keep - private native void setResourceCachePath(String path); + private native void setResourceCachePath(String path, ResourcesCachePathChangeCallback callback); @Keep private native void initialize(String accessToken, String cachePath, AssetManager assetManager); |