From bcf5c853d50bcd82b986bebc7edc946af49ac3ed Mon Sep 17 00:00:00 2001 From: Matt Pietal Date: Mon, 21 Sep 2020 16:18:30 -0400 Subject: [PATCH] Media - Remove before adding for config changes Views were not properly getting reinflated due to font/display size changes. When this happens, remove the views and recreate them. Fixes: 168812862 Test: manual, follow bug steps Change-Id: I1390110f33eb9ac9a7c616fbde281186c34d2f3d --- .../android/systemui/media/MediaCarouselController.kt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt index 1808035df027b..3aa37a2a927de 100644 --- a/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt +++ b/packages/SystemUI/src/com/android/systemui/media/MediaCarouselController.kt @@ -274,7 +274,7 @@ class MediaCarouselController @Inject constructor( } } - private fun removePlayer(key: String) { + private fun removePlayer(key: String, dismissMediaData: Boolean = true) { val removed = MediaPlayerData.removeMediaPlayer(key) removed?.apply { mediaCarouselScrollHandler.onPrePlayerRemoved(removed) @@ -283,13 +283,16 @@ class MediaCarouselController @Inject constructor( mediaCarouselScrollHandler.onPlayersChanged() updatePageIndicator() - // Inform the media manager of a potentially late dismissal - mediaManager.dismissMediaData(key, 0L) + if (dismissMediaData) { + // Inform the media manager of a potentially late dismissal + mediaManager.dismissMediaData(key, 0L) + } } } private fun recreatePlayers() { MediaPlayerData.mediaData().forEach { (key, data) -> + removePlayer(key, dismissMediaData = false) addOrUpdatePlayer(key = key, oldKey = null, data = data) } }