summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
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
commite0f32000df56d3d04ace29e5089b9b65db6a7f91 (patch)
tree6372e49cc94f9e0193bc72f2c48abf6016785c76
parentb7fafaa42949cbe27a36ab99b21d3c75819dbd0c (diff)
downloadqtlocation-mapboxgl-e0f32000df56d3d04ace29e5089b9b65db6a7f91.tar.gz
[android] FileUtils read/write permission check tasks retain a strong reference
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/FileUtils.java51
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();
}
}
}