diff options
-rw-r--r-- | app/src/main/java/ml/docilealligator/infinityforreddit/broadcastreceivers/DownloadedMediaDeleteActionBroadcastReceiver.java | 16 |
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); |