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

Commit 377b9398 authored by Hawkwood Glazier's avatar Hawkwood Glazier
Browse files

Changing the system theme no longer causes a UMO flicker

Recreating the UMO causes a visual flicker. Since the
theme can be changed from a quick setting, this flicker
may occur while it is onscreen. The UMO now uses it's
own colors and does not need to be recreated for theme
changes.

Test: Manual
Fixes: 232295658
Fixes: 204414378
Change-Id: Ifcdb95e7b783cfe8634c8280ac1aa13f193e04bd
parent b6da699d
Loading
Loading
Loading
Loading
+8 −5
Original line number Original line Diff line number Diff line
@@ -150,12 +150,13 @@ class MediaCarouselController @Inject constructor(
        }
        }
    private val configListener = object : ConfigurationController.ConfigurationListener {
    private val configListener = object : ConfigurationController.ConfigurationListener {
        override fun onDensityOrFontScaleChanged() {
        override fun onDensityOrFontScaleChanged() {
            recreatePlayers()
            // System font changes should only happen when UMO is offscreen or a flicker may occur
            updatePlayers(recreateMedia = true)
            inflateSettingsButton()
            inflateSettingsButton()
        }
        }


        override fun onThemeChanged() {
        override fun onThemeChanged() {
            recreatePlayers()
            updatePlayers(recreateMedia = false)
            inflateSettingsButton()
            inflateSettingsButton()
        }
        }


@@ -165,7 +166,7 @@ class MediaCarouselController @Inject constructor(
        }
        }


        override fun onUiModeChanged() {
        override fun onUiModeChanged() {
            recreatePlayers()
            updatePlayers(recreateMedia = false)
            inflateSettingsButton()
            inflateSettingsButton()
        }
        }
    }
    }
@@ -539,7 +540,7 @@ class MediaCarouselController @Inject constructor(
        }
        }
    }
    }


    private fun recreatePlayers() {
    private fun updatePlayers(recreateMedia: Boolean) {
        pageIndicator.tintList = ColorStateList.valueOf(
        pageIndicator.tintList = ColorStateList.valueOf(
            context.getColor(R.color.media_paging_indicator)
            context.getColor(R.color.media_paging_indicator)
        )
        )
@@ -554,7 +555,9 @@ class MediaCarouselController @Inject constructor(
                }
                }
            } else {
            } else {
                val isSsReactivated = MediaPlayerData.isSsReactivated(key)
                val isSsReactivated = MediaPlayerData.isSsReactivated(key)
                if (recreateMedia) {
                    removePlayer(key, dismissMediaData = false, dismissRecommendation = false)
                    removePlayer(key, dismissMediaData = false, dismissRecommendation = false)
                }
                addOrUpdatePlayer(
                addOrUpdatePlayer(
                        key = key, oldKey = null, data = data, isSsReactivated = isSsReactivated)
                        key = key, oldKey = null, data = data, isSsReactivated = isSsReactivated)
            }
            }