Fix || for != in QSTileViewImpl

The block to change colors should only be ran if the colors actually
need to change. The condition was wrongly written, but because those
variables are boolean, the only effect it had was that it would be
called more often (sometimes when colors didn't need to change).

Test: atest QSTileViewImpl
Fixes: 271835100
Change-Id: Idd160b31b72cb18b8d90aa48133dc425a414c697
This commit is contained in:
Fabian Kozynski
2023-03-06 10:34:36 -05:00
parent e50a62e38e
commit 220ea0932c
2 changed files with 21 additions and 1 deletions

View File

@@ -490,7 +490,7 @@ open class QSTileViewImpl @JvmOverloads constructor(
}
// Colors
if (state.state != lastState || state.disabledByPolicy || lastDisabledByPolicy) {
if (state.state != lastState || state.disabledByPolicy != lastDisabledByPolicy) {
singleAnimator.cancel()
mQsLogger?.logTileBackgroundColorUpdateIfInternetTile(
state.spec,

View File

@@ -316,6 +316,26 @@ class QSTileViewImplTest : SysuiTestCase() {
assertThat(colorsDisabledByPolicy).containsExactlyElementsIn(colorsUnavailable)
}
@Test
fun testDisableByPolicyThenRemoved_changesColor() {
val stateActive = QSTile.State()
stateActive.state = Tile.STATE_ACTIVE
val stateDisabledByPolicy = stateActive.copy()
stateDisabledByPolicy.disabledByPolicy = true
tileView.changeState(stateActive)
val activeColors = tileView.getCurrentColors()
tileView.changeState(stateDisabledByPolicy)
// It has unavailable colors
assertThat(tileView.getCurrentColors()).isNotEqualTo(activeColors)
// When we get back to not disabled by policy tile, it should go back to active colors
tileView.changeState(stateActive)
assertThat(tileView.getCurrentColors()).containsExactlyElementsIn(activeColors)
}
@Test
fun testDisabledByPolicy_secondaryLabelText() {
val testA11yLabel = "TEST_LABEL"