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

Commit cb59b0b7 authored by Florence Yang's avatar Florence Yang
Browse files

Fix Color Clock on AOD

When region sampling text protection was enabled, AOD clock was changing
from white clock to lockscreen's colored clock because
animateAppearOnLockscreen() was being triggered by
onRegionDarknessChanged(). To remedy this, we now ensure that
animateAppearOnLockscreen() cannot be called when animation doze state
is active (AOD mode). Since animateDoze() already handles the clock
color change when going from lockscreen to AOD mode, there is no need
for animateAppearOnLockscreen() to be called since the clock color
never changes in AOD mode.

Test: atest test_aodClock_always_whiteColor
Fixes: 258852242
Change-Id: I45484db37c7a728b1c71eacd8c162b580e59f820
parent b67434eb
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -128,9 +128,11 @@ class DefaultClockController(

            currentColor = color
            view.setColors(DOZE_COLOR, color)
            if (!animations.dozeState.isActive) {
                view.animateAppearOnLockscreen()
            }
        }
    }

    inner class LargeClockFaceController(
        view: AnimatableClockView,
@@ -188,7 +190,7 @@ class DefaultClockController(
        dozeFraction: Float,
        foldFraction: Float,
    ) : ClockAnimations {
        private val dozeState = AnimationState(dozeFraction)
        internal val dozeState = AnimationState(dozeFraction)
        private val foldState = AnimationState(foldFraction)

        init {
@@ -229,7 +231,7 @@ class DefaultClockController(
            get() = true
    }

    private class AnimationState(
    class AnimationState(
        var fraction: Float,
    ) {
        var isActive: Boolean = fraction > 0.5f
+9 −0
Original line number Diff line number Diff line
@@ -43,6 +43,7 @@ import org.mockito.ArgumentMatchers.anyFloat
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.ArgumentMatchers.notNull
import org.mockito.Mock
import org.mockito.Mockito.never
import org.mockito.Mockito.times
import org.mockito.Mockito.verify
import org.mockito.Mockito.`when` as whenever
@@ -171,4 +172,12 @@ class DefaultClockProviderTest : SysuiTestCase() {
        verify(mockSmallClockView, times(2)).refreshFormat()
        verify(mockLargeClockView, times(2)).refreshFormat()
    }

    @Test
    fun test_aodClock_always_whiteColor() {
        val clock = provider.createClock(DEFAULT_CLOCK_ID)
        clock.animations.doze(0.9f) // set AOD mode to active
        clock.smallClock.events.onRegionDarknessChanged(true)
        verify((clock.smallClock.view as AnimatableClockView), never()).animateAppearOnLockscreen()
    }
}