diff options
author | Docile-Alligator <chineseperson5@gmail.com> | 2022-06-11 13:01:33 +0000 |
---|---|---|
committer | Docile-Alligator <chineseperson5@gmail.com> | 2022-06-11 13:01:33 +0000 |
commit | b6162c14965b8bc0b379771f47aa1abba7b8e80d (patch) | |
tree | a3551e9f1ea38e8d14ced9479da1349423820189 /app/src/main/java/ml/docilealligator/infinityforreddit | |
parent | 33c473824bb3da4abfd7f346e53db2648f19395f (diff) | |
download | infinity-for-reddit-b6162c14965b8bc0b379771f47aa1abba7b8e80d.tar infinity-for-reddit-b6162c14965b8bc0b379771f47aa1abba7b8e80d.tar.gz infinity-for-reddit-b6162c14965b8bc0b379771f47aa1abba7b8e80d.tar.bz2 infinity-for-reddit-b6162c14965b8bc0b379771f47aa1abba7b8e80d.tar.lz infinity-for-reddit-b6162c14965b8bc0b379771f47aa1abba7b8e80d.tar.xz infinity-for-reddit-b6162c14965b8bc0b379771f47aa1abba7b8e80d.tar.zst infinity-for-reddit-b6162c14965b8bc0b379771f47aa1abba7b8e80d.zip |
Fix app crashes when deleting media from notification.
Diffstat (limited to 'app/src/main/java/ml/docilealligator/infinityforreddit')
-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); |