diff options
author | Łukasz Paczos <lukas.paczos@gmail.com> | 2019-05-09 14:48:58 +0200 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2019-05-10 14:15:06 +0200 |
commit | e0f32000df56d3d04ace29e5089b9b65db6a7f91 (patch) | |
tree | 6372e49cc94f9e0193bc72f2c48abf6016785c76 /platform/android/MapboxGLAndroidSDK | |
parent | b7fafaa42949cbe27a36ab99b21d3c75819dbd0c (diff) | |
download | qtlocation-mapboxgl-e0f32000df56d3d04ace29e5089b9b65db6a7f91.tar.gz |
[android] FileUtils read/write permission check tasks retain a strong reference
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/FileUtils.java | 51 |
1 files changed, 22 insertions, 29 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/FileUtils.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/FileUtils.java index 500e784602..87507363fc 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/FileUtils.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/FileUtils.java @@ -6,7 +6,6 @@ import android.support.annotation.NonNull; import com.mapbox.mapboxsdk.log.Logger; import java.io.File; -import java.lang.ref.WeakReference; public class FileUtils { @@ -14,13 +13,16 @@ public class FileUtils { /** * Task checking whether app's process can read a file. + * <p> + * The callback reference is <b>strongly kept</b> throughout the process, + * so it needs to be wrapped in a weak reference or released on the client side if necessary. */ public static class CheckFileReadPermissionTask extends AsyncTask<File, Void, Boolean> { @NonNull - private final WeakReference<OnCheckFileReadPermissionListener> listenerWeakReference; + private final OnCheckFileReadPermissionListener listener; - public CheckFileReadPermissionTask(OnCheckFileReadPermissionListener listener) { - this.listenerWeakReference = new WeakReference<>(listener); + public CheckFileReadPermissionTask(@NonNull OnCheckFileReadPermissionListener listener) { + this.listener = listener; } @Override @@ -34,21 +36,15 @@ public class FileUtils { @Override protected void onCancelled() { - OnCheckFileReadPermissionListener listener = listenerWeakReference.get(); - if (listener != null) { - listener.onError(); - } + listener.onError(); } @Override protected void onPostExecute(Boolean result) { - OnCheckFileReadPermissionListener listener = listenerWeakReference.get(); - if (listener != null) { - if (result) { - listener.onReadPermissionGranted(); - } else { - listener.onError(); - } + if (result) { + listener.onReadPermissionGranted(); + } else { + listener.onError(); } } } @@ -71,13 +67,16 @@ public class FileUtils { /** * Task checking whether app's process can write to a file. + * <p> + * The callback reference is <b>strongly kept</b> throughout the process, + * so it needs to be wrapped in a weak reference or released on the client side if necessary. */ public static class CheckFileWritePermissionTask extends AsyncTask<File, Void, Boolean> { @NonNull - private final WeakReference<OnCheckFileWritePermissionListener> listenerWeakReference; + private final OnCheckFileWritePermissionListener listener; - public CheckFileWritePermissionTask(OnCheckFileWritePermissionListener listener) { - this.listenerWeakReference = new WeakReference<>(listener); + public CheckFileWritePermissionTask(@NonNull OnCheckFileWritePermissionListener listener) { + this.listener = listener; } @Override @@ -91,21 +90,15 @@ public class FileUtils { @Override protected void onCancelled() { - OnCheckFileWritePermissionListener listener = listenerWeakReference.get(); - if (listener != null) { - listener.onError(); - } + listener.onError(); } @Override protected void onPostExecute(Boolean result) { - OnCheckFileWritePermissionListener listener = listenerWeakReference.get(); - if (listener != null) { - if (result) { - listener.onWritePermissionGranted(); - } else { - listener.onError(); - } + if (result) { + listener.onWritePermissionGranted(); + } else { + listener.onError(); } } } |