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

Commit 9a35c764 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Update udfps icon interpolator for transition to AlternateBouncer" into udc-qpr-dev

parents 09311d9d b775665e
Loading
Loading
Loading
Loading
+2 −1
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@ import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInterac
import com.android.systemui.keyguard.domain.interactor.UdfpsKeyguardInteractor
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.StatusBarState
import com.android.wm.shell.animation.Interpolators
import javax.inject.Inject
import kotlin.math.roundToInt
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -68,7 +69,7 @@ open class UdfpsLockscreenViewModel(
                        if (visibleInKeyguardState(it.from, statusBarState)) {
                            1f
                        } else {
                            it.value
                            Interpolators.FAST_OUT_SLOW_IN.getInterpolation(it.value)
                        },
                    color = getColorAttrDefaultColor(context, alternateBouncerColorResId),
                )
+57 −0
Original line number Diff line number Diff line
@@ -40,6 +40,7 @@ import com.android.systemui.statusbar.phone.SystemUIDialogManager
import com.android.systemui.util.mockito.argumentCaptor
import com.android.systemui.util.mockito.mock
import com.android.systemui.util.time.FakeSystemClock
import com.android.wm.shell.animation.Interpolators
import com.google.common.collect.Range
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
@@ -689,6 +690,62 @@ class UdfpsLockscreenViewModelTest : SysuiTestCase() {
            assertThat(transition?.alpha).isEqualTo(1f)
        }

    @Test
    fun occludedToAlternateBouncer() =
        testScope.runTest {
            val transition by collectLastValue(underTest.transition)
            val visible by collectLastValue(underTest.visible)

            // TransitionState.STARTED: occluded -> alternate bouncer
            transitionRepository.sendTransitionStep(
                TransitionStep(
                    from = KeyguardState.OCCLUDED,
                    to = KeyguardState.ALTERNATE_BOUNCER,
                    value = 0f,
                    transitionState = TransitionState.STARTED,
                    ownerName = "occludedToAlternateBouncer",
                )
            )
            runCurrent()
            assertThat(transition?.alpha).isEqualTo(1f)
            assertThat(transition?.scale).isEqualTo(0f)
            assertThat(transition?.color).isEqualTo(alternateBouncerColor)
            assertThat(visible).isTrue()

            // TransitionState.RUNNING: occluded -> alternate bouncer
            transitionRepository.sendTransitionStep(
                TransitionStep(
                    from = KeyguardState.OCCLUDED,
                    to = KeyguardState.ALTERNATE_BOUNCER,
                    value = .6f,
                    transitionState = TransitionState.RUNNING,
                    ownerName = "occludedToAlternateBouncer",
                )
            )
            runCurrent()
            assertThat(transition?.alpha).isEqualTo(1f)
            assertThat(transition?.scale)
                .isEqualTo(Interpolators.FAST_OUT_SLOW_IN.getInterpolation(.6f))
            assertThat(transition?.color).isEqualTo(alternateBouncerColor)
            assertThat(visible).isTrue()

            // TransitionState.FINISHED: occluded -> alternate bouncer
            transitionRepository.sendTransitionStep(
                TransitionStep(
                    from = KeyguardState.OCCLUDED,
                    to = KeyguardState.ALTERNATE_BOUNCER,
                    value = 1f,
                    transitionState = TransitionState.FINISHED,
                    ownerName = "occludedToAlternateBouncer",
                )
            )
            runCurrent()
            assertThat(transition?.alpha).isEqualTo(1f)
            assertThat(transition?.scale).isEqualTo(1f)
            assertThat(transition?.color).isEqualTo(alternateBouncerColor)
            assertThat(visible).isTrue()
        }

    private suspend fun givenTransitionToLockscreenFinished() {
        transitionRepository.sendTransitionStep(
            TransitionStep(