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 Oliver Woodman
parent 6596cd1d83
commit 5ff2d24fab
2 changed files with 11 additions and 2 deletions

View File

@ -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)

View File

@ -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")