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
This commit is contained in:
olly 2021-05-12 20:34:53 +01:00 committed by Ian Baker
parent b2333c86c1
commit 049b6edbb3
2 changed files with 16 additions and 2 deletions

View File

@ -1,5 +1,12 @@
# Release notes
### dev-v2 (not yet released)
* UI:
* Add `PendingIntent.FLAG_IMMUTABLE` flag when creating a broadcast intent
in `PlayerNotificationManager`. This is required to avoid an error on
Android 12.
### 2.14.1 (2021-06-11)
* Core Library:

View File

@ -1598,8 +1598,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")