From 4a9bd3de21d692c355c903df9d9940edddd5e622 Mon Sep 17 00:00:00 2001 From: M66B Date: Mon, 19 Jun 2023 07:16:48 +0200 Subject: [PATCH] Report pending intent errors --- .../faircode/email/PendingIntentCompat.java | 39 +++++++++++++------ 1 file changed, 27 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/PendingIntentCompat.java b/app/src/main/java/eu/faircode/email/PendingIntentCompat.java index d1df55eaad..53221b4115 100644 --- a/app/src/main/java/eu/faircode/email/PendingIntentCompat.java +++ b/app/src/main/java/eu/faircode/email/PendingIntentCompat.java @@ -36,23 +36,38 @@ public class PendingIntentCompat { // https://stackoverflow.com/questions/71266853/xiaomi-android-11-securityexception-too-many-pendingintent-created public static PendingIntent getActivity(Context context, int requestCode, Intent intent, int flags) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S || (flags & PendingIntent.FLAG_MUTABLE) != 0) - return PendingIntent.getActivity(context, requestCode, intent, flags); - else - return PendingIntent.getActivity(context, requestCode, intent, flags | PendingIntent.FLAG_IMMUTABLE); + try { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S || (flags & PendingIntent.FLAG_MUTABLE) != 0) + return PendingIntent.getActivity(context, requestCode, intent, flags); + else + return PendingIntent.getActivity(context, requestCode, intent, flags | PendingIntent.FLAG_IMMUTABLE); + } catch (Throwable ex) { + Log.e(ex); + throw ex; + } } public static PendingIntent getService(Context context, int requestCode, @NonNull Intent intent, int flags) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S || (flags & PendingIntent.FLAG_MUTABLE) != 0) - return PendingIntent.getService(context, requestCode, intent, flags); - else - return PendingIntent.getService(context, requestCode, intent, flags | PendingIntent.FLAG_IMMUTABLE); + try { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S || (flags & PendingIntent.FLAG_MUTABLE) != 0) + return PendingIntent.getService(context, requestCode, intent, flags); + else + return PendingIntent.getService(context, requestCode, intent, flags | PendingIntent.FLAG_IMMUTABLE); + } catch (Throwable ex) { + Log.e(ex); + throw ex; + } } static PendingIntent getForegroundService(Context context, int requestCode, @NonNull Intent intent, int flags) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S || (flags & PendingIntent.FLAG_MUTABLE) != 0) - return PendingIntent.getService(context, requestCode, intent, flags); - else - return PendingIntent.getForegroundService(context, requestCode, intent, flags | PendingIntent.FLAG_IMMUTABLE); + try { + if (Build.VERSION.SDK_INT < Build.VERSION_CODES.S || (flags & PendingIntent.FLAG_MUTABLE) != 0) + return PendingIntent.getService(context, requestCode, intent, flags); + else + return PendingIntent.getForegroundService(context, requestCode, intent, flags | PendingIntent.FLAG_IMMUTABLE); + } catch (Throwable ex) { + Log.e(ex); + throw ex; + } } }