From 5ff2d24faba529a92d57be2f389fedf234560d96 Mon Sep 17 00:00:00 2001 From: olly Date: Wed, 12 May 2021 20:34:53 +0100 Subject: [PATCH] Update PlayerNotficationManager to set PendingIntent.FLAG_IMMUTABLE on its Broadcast intent. In Android 12 mutability flags have to be set on PendingIntents. If they are not, and the app targets Android 12, then the app will be crashed by the system. PiperOrigin-RevId: 373427591 --- RELEASENOTES.md | 2 ++ .../exoplayer2/ui/PlayerNotificationManager.java | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/RELEASENOTES.md b/RELEASENOTES.md index a7505e8f69..3121405d32 100644 --- a/RELEASENOTES.md +++ b/RELEASENOTES.md @@ -45,6 +45,8 @@ * HLS * Use the PRECISE attribute in EXT-X-START to select the default start position. +* PlayerNotificationManager: + * Add `PendingIntent.FLAG_IMMUTABLE` flag to BroadcastReceiver to support Android 12. ### 2.14.0 (2021-05-13) diff --git a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java index 2b6e995370..2c17a39ef7 100644 --- a/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java +++ b/library/ui/src/main/java/com/google/android/exoplayer2/ui/PlayerNotificationManager.java @@ -1380,8 +1380,15 @@ public class PlayerNotificationManager { String action, Context context, int instanceId) { Intent intent = new Intent(action).setPackage(context.getPackageName()); intent.putExtra(EXTRA_INSTANCE_ID, instanceId); - return PendingIntent.getBroadcast( - context, instanceId, intent, PendingIntent.FLAG_UPDATE_CURRENT); + + int pendingFlags; + if (Util.SDK_INT >= 23) { + pendingFlags = PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE; + } else { + pendingFlags = PendingIntent.FLAG_UPDATE_CURRENT; + } + + return PendingIntent.getBroadcast(context, instanceId, intent, pendingFlags); } @SuppressWarnings("nullness:argument.type.incompatible")