From a32e118ed35bed649576ebed280aed2278eaa580 Mon Sep 17 00:00:00 2001 From: M66B Date: Thu, 31 Mar 2022 18:49:00 +0200 Subject: [PATCH] Attempt to workaround Android 11 / Xiaomi pending intent bug --- .../main/java/eu/faircode/email/PendingIntentCompat.java | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/eu/faircode/email/PendingIntentCompat.java b/app/src/main/java/eu/faircode/email/PendingIntentCompat.java index 0387d4a8c9..4e9674ae97 100644 --- a/app/src/main/java/eu/faircode/email/PendingIntentCompat.java +++ b/app/src/main/java/eu/faircode/email/PendingIntentCompat.java @@ -30,22 +30,24 @@ public class PendingIntentCompat { private PendingIntentCompat() { } + // https://developer.android.com/about/versions/12/behavior-changes-12#pending-intent-mutability + public static PendingIntent getActivity(Context context, int requestCode, Intent intent, int flags) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (flags & PendingIntent.FLAG_MUTABLE) != 0) + 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); } public static PendingIntent getService(Context context, int requestCode, @NonNull Intent intent, int flags) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.M || (flags & PendingIntent.FLAG_MUTABLE) != 0) + 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); } static PendingIntent getForegroundService(Context context, int requestCode, @NonNull Intent intent, int flags) { - if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O || (flags & PendingIntent.FLAG_MUTABLE) != 0) + 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);