Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 544fb7ca authored by Michael Mikhail's avatar Michael Mikhail
Browse files

Make sure latest data model is used when metadata changes

Flag: com.android.systemui.media_controls_in_compose
Bug: 397989775
Test: build.
Change-Id: I77dd74d420eeb40233b498c6e5797ffec6a805c3
parent ce154082
Loading
Loading
Loading
Loading
+10 −6
Original line number Diff line number Diff line
@@ -330,13 +330,17 @@ constructor(

                override fun onMetadataChanged(metadata: MediaMetadata?) {
                    val duration = metadata?.getLong(MediaMetadata.METADATA_KEY_DURATION) ?: 0L
                    updateMediaModelInState(dataModel) { model ->
                    currentMedia
                        .find { it.instanceId == dataModel.instanceId }
                        ?.let { latestModel ->
                            updateMediaModelInState(latestModel) { model ->
                                val canBeScrubbed =
                                    controller.playbackState?.state != PlaybackState.STATE_NONE &&
                                        duration > 0L
                                model.copy(canBeScrubbed = canBeScrubbed, durationMs = duration)
                            }
                        }
                }

                override fun onSessionDestroyed() {
                    clearControllerState(dataModel.instanceId)