summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/FileUtils.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/FileUtils.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/utils/FileUtils.java30
1 files changed, 30 insertions, 0 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 52009d20ef..500e784602 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
@@ -3,11 +3,15 @@ package com.mapbox.mapboxsdk.utils;
import android.os.AsyncTask;
import android.support.annotation.NonNull;
+import com.mapbox.mapboxsdk.log.Logger;
+
import java.io.File;
import java.lang.ref.WeakReference;
public class FileUtils {
+ private static final String TAG = "Mbgl-FileUtils";
+
/**
* Task checking whether app's process can read a file.
*/
@@ -121,4 +125,30 @@ public class FileUtils {
*/
void onError();
}
+
+ /**
+ * Deletes a file asynchronously in a separate thread.
+ *
+ * @param path the path of the file that should be deleted
+ */
+ public static void deleteFile(@NonNull final String path) {
+ // Delete the file in a separate thread to avoid affecting the UI
+ new Thread(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ File file = new File(path);
+ if (file.exists()) {
+ if (file.delete()) {
+ Logger.d(TAG, "File deleted to save space: " + path);
+ } else {
+ Logger.e(TAG, "Failed to delete file: " + path);
+ }
+ }
+ } catch (Exception exception) {
+ Logger.e(TAG, "Failed to delete file: ", exception);
+ }
+ }
+ }).start();
+ }
}