Update notification play/pause button with matching player state

Issue: androidx/media#192
PiperOrigin-RevId: 508649684
(cherry picked from commit e1d12fc395d9f9edb28755a5b1026e26b378e005)
This commit is contained in:
tianyifeng 2023-02-10 14:57:53 +00:00 committed by tonihei
parent 5822d683ea
commit ad428004fd
2 changed files with 24 additions and 1 deletions

View File

@ -145,6 +145,27 @@ This release corresponds to the
* Make `QueueTimeline` more robust in case of a shady legacy session state
([#241](https://github.com/androidx/media/issues/241)).
* Cast extension:
* Fix a bug where notification play/pause button doesn't update with
player state ([#192](https://github.com/androidx/media/issues/192)).
* Metadata:
* Parse multiple null-separated values from ID3 frames, as permitted by
ID3 v2.4.
* Add `MediaMetadata.mediaType` to denote the type of content or the type
of folder described by the metadata.
* Add `MediaMetadata.isBrowsable` as a replacement for
`MediaMetadata.folderType`. The folder type will be deprecated in the
next release.
* Transformer:
* Remove `Transformer.Builder.setMediaSourceFactory(MediaSource.Factory)`.
Use `ExoPlayerAssetLoader.Factory(MediaSource.Factory)` and
`Transformer.Builder.setAssetLoaderFactory(AssetLoader.Factory)`
instead.
* Remove `Transformer.startTransformation(MediaItem,
ParcelFileDescriptor)`.
* Remove deprecated symbols:
* Remove `DefaultAudioSink` constructors, use `DefaultAudioSink.Builder`
instead.
* Cast extension
* Bump Cast SDK version to 21.2.0.
* IMA extension:
* Map `PLAYER_STATE_LOADING` to `STATE_BUFFERING`

View File

@ -219,9 +219,11 @@ import java.util.concurrent.TimeoutException;
if (startInForegroundRequired) {
startForeground(mediaNotification);
} else {
maybeStopForegroundService(/* removeNotifications= */ false);
// Notification manager has to be updated first to avoid missing updates
// (https://github.com/androidx/media/issues/192).
notificationManagerCompat.notify(
mediaNotification.notificationId, mediaNotification.notification);
maybeStopForegroundService(/* removeNotifications= */ false);
}
}