Merge "Changing the system theme no longer causes a UMO flicker" into tm-dev am: fc27977780 am: 89dfd5b40d

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/18392069

Change-Id: I3875934586d3f5af488a87d4afa44d0d24a358cc
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Hawkwood Glazier
2022-05-20 16:35:45 +00:00
committed by Automerger Merge Worker

View File

@@ -150,12 +150,13 @@ class MediaCarouselController @Inject constructor(
}
private val configListener = object : ConfigurationController.ConfigurationListener {
override fun onDensityOrFontScaleChanged() {
recreatePlayers()
// System font changes should only happen when UMO is offscreen or a flicker may occur
updatePlayers(recreateMedia = true)
inflateSettingsButton()
}
override fun onThemeChanged() {
recreatePlayers()
updatePlayers(recreateMedia = false)
inflateSettingsButton()
}
@@ -165,7 +166,7 @@ class MediaCarouselController @Inject constructor(
}
override fun onUiModeChanged() {
recreatePlayers()
updatePlayers(recreateMedia = false)
inflateSettingsButton()
}
}
@@ -539,7 +540,7 @@ class MediaCarouselController @Inject constructor(
}
}
private fun recreatePlayers() {
private fun updatePlayers(recreateMedia: Boolean) {
pageIndicator.tintList = ColorStateList.valueOf(
context.getColor(R.color.media_paging_indicator)
)
@@ -554,7 +555,9 @@ class MediaCarouselController @Inject constructor(
}
} else {
val isSsReactivated = MediaPlayerData.isSsReactivated(key)
removePlayer(key, dismissMediaData = false, dismissRecommendation = false)
if (recreateMedia) {
removePlayer(key, dismissMediaData = false, dismissRecommendation = false)
}
addOrUpdatePlayer(
key = key, oldKey = null, data = data, isSsReactivated = isSsReactivated)
}