aboutsummaryrefslogtreecommitdiff
path: root/app/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java')
-rw-r--r--app/src/main/java/ml/docilealligator/infinityforreddit/broadcastreceivers/DownloadedMediaDeleteActionBroadcastReceiver.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/app/src/main/java/ml/docilealligator/infinityforreddit/broadcastreceivers/DownloadedMediaDeleteActionBroadcastReceiver.java b/app/src/main/java/ml/docilealligator/infinityforreddit/broadcastreceivers/DownloadedMediaDeleteActionBroadcastReceiver.java
index 22e2e2f1..323c78eb 100644
--- a/app/src/main/java/ml/docilealligator/infinityforreddit/broadcastreceivers/DownloadedMediaDeleteActionBroadcastReceiver.java
+++ b/app/src/main/java/ml/docilealligator/infinityforreddit/broadcastreceivers/DownloadedMediaDeleteActionBroadcastReceiver.java
@@ -8,13 +8,27 @@ import android.content.Context;
import android.content.Intent;
import android.net.Uri;
+import androidx.documentfile.provider.DocumentFile;
+
+import java.io.File;
+
public class DownloadedMediaDeleteActionBroadcastReceiver extends BroadcastReceiver {
public static final String EXTRA_NOTIFICATION_ID = "ENI";
@Override
public void onReceive(Context context, Intent intent) {
Uri mediaUri = intent.getData();
if (mediaUri != null) {
- context.getContentResolver().delete(mediaUri, null, null);
+ try {
+ context.getContentResolver().delete(mediaUri, null, null);
+ } catch (Exception e) {
+ DocumentFile file = DocumentFile.fromSingleUri(context, mediaUri);
+ if (file != null) {
+ if (!file.delete()) {
+ new File(mediaUri.toString()).delete();
+ }
+ }
+ }
+
}
NotificationManager manager = (NotificationManager) context.getSystemService(NOTIFICATION_SERVICE);