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

Commit 230d79bb authored by Matt Pietal's avatar Matt Pietal
Browse files

LOCKSCREEN->DOZING don't fade out lockscreen

The content needs to end up visible, and it provides
no visible value and only conflicts with UDFPS.

Fixes: 363899639
Test: atest LockscreenToDozingTransitionViewModelTest
Flag: com.android.systemui.migrate_clocks_to_blueprint
Change-Id: I347681d5b51a01f739a7e05d50cd0dd9aed2e68b
parent eff91c9f
Loading
Loading
Loading
Loading
+9 −36
Original line number Diff line number Diff line
@@ -34,6 +34,7 @@ import com.android.systemui.kosmos.testScope
import com.android.systemui.testKosmos
import com.google.common.truth.Truth.assertThat
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.test.runCurrent
import kotlinx.coroutines.test.runTest
import org.junit.Before
import org.junit.Test
@@ -85,26 +86,22 @@ class LockscreenToDozingTransitionViewModelTest : SysuiTestCase() {
        testScope.runTest {
            fingerprintPropertyRepository.supportsUdfps()
            biometricSettingsRepository.setIsFingerprintAuthEnrolledAndEnabled(false)

            val values by collectValues(underTest.deviceEntryParentViewAlpha)
            runCurrent()

            keyguardTransitionRepository.sendTransitionSteps(
                listOf(
                    step(0f, TransitionState.STARTED),
                    step(0f),
                    step(0.1f),
                    step(0.2f),
                    step(0.3f),
                    step(1f),
                ),
                from = KeyguardState.LOCKSCREEN,
                to = KeyguardState.DOZING,
                testScope,
            )

            values.forEach { assertThat(it).isEqualTo(0f) }
            assertThat(values[0]).isEqualTo(1f)
            assertThat(values[1]).isEqualTo(0f)
        }


    @Test
    fun lockscreenAlphaFadesOutAndFinishesVisible() =
    fun lockscreenAlphaDoesNotFadeOut() =
        testScope.runTest {
            val alpha by collectValues(underTest.lockscreenAlpha)
            keyguardTransitionRepository.sendTransitionSteps(
@@ -113,31 +110,7 @@ class LockscreenToDozingTransitionViewModelTest : SysuiTestCase() {
                testScope,
            )

            assertThat(alpha[0]).isEqualTo(1f)
            // Halfway through, it will have faded out
            assertThat(alpha[1]).isEqualTo(0f)
            // FINISHED alpha should be visible, to support pulsing
            assertThat(alpha[2]).isEqualTo(1f)
        }

    @Test
    fun deviceEntryBackgroundViewDisappear() =
        testScope.runTest {
            val values by collectValues(underTest.deviceEntryBackgroundViewAlpha)

            keyguardTransitionRepository.sendTransitionSteps(
                listOf(
                    step(0f, TransitionState.STARTED),
                    step(0f),
                    step(0.1f),
                    step(0.2f),
                    step(0.3f),
                    step(1f),
                ),
                testScope,
            )

            values.forEach { assertThat(it).isEqualTo(0f) }
            alpha.forEach { assertThat(it).isEqualTo(1f) }
        }

    private fun step(value: Float, state: TransitionState = RUNNING): TransitionStep {
+10 −12
Original line number Diff line number Diff line
@@ -43,23 +43,22 @@ constructor(
    val deviceEntryIconViewModel: DeviceEntryIconViewModel,
    keyguardTransitionInteractor: KeyguardTransitionInteractor,
    configurationInteractor: ConfigurationInteractor,
    lockscreenToAodTransitionViewModel: LockscreenToAodTransitionViewModel,
    alternateBouncerToAodTransitionViewModel: AlternateBouncerToAodTransitionViewModel,
    alternateBouncerToDozingTransitionViewModel: AlternateBouncerToDozingTransitionViewModel,
    aodToLockscreenTransitionViewModel: AodToLockscreenTransitionViewModel,
    dozingToLockscreenTransitionViewModel: DozingToLockscreenTransitionViewModel,
    dreamingToAodTransitionViewModel: DreamingToAodTransitionViewModel,
    dreamingToLockscreenTransitionViewModel: DreamingToLockscreenTransitionViewModel,
    goneToAodTransitionViewModel: GoneToAodTransitionViewModel,
    primaryBouncerToAodTransitionViewModel: PrimaryBouncerToAodTransitionViewModel,
    goneToDozingTransitionViewModel: GoneToDozingTransitionViewModel,
    goneToLockscreenTransitionViewModel: GoneToLockscreenTransitionViewModel,
    lockscreenToAodTransitionViewModel: LockscreenToAodTransitionViewModel,
    occludedToAodTransitionViewModel: OccludedToAodTransitionViewModel,
    occludedToDozingTransitionViewModel: OccludedToDozingTransitionViewModel,
    occludedToLockscreenTransitionViewModel: OccludedToLockscreenTransitionViewModel,
    dreamingToLockscreenTransitionViewModel: DreamingToLockscreenTransitionViewModel,
    alternateBouncerToAodTransitionViewModel: AlternateBouncerToAodTransitionViewModel,
    goneToLockscreenTransitionViewModel: GoneToLockscreenTransitionViewModel,
    goneToDozingTransitionViewModel: GoneToDozingTransitionViewModel,
    primaryBouncerToAodTransitionViewModel: PrimaryBouncerToAodTransitionViewModel,
    primaryBouncerToDozingTransitionViewModel: PrimaryBouncerToDozingTransitionViewModel,
    lockscreenToDozingTransitionViewModel: LockscreenToDozingTransitionViewModel,
    dozingToLockscreenTransitionViewModel: DozingToLockscreenTransitionViewModel,
    alternateBouncerToDozingTransitionViewModel: AlternateBouncerToDozingTransitionViewModel,
    dreamingToAodTransitionViewModel: DreamingToAodTransitionViewModel,
    primaryBouncerToLockscreenTransitionViewModel: PrimaryBouncerToLockscreenTransitionViewModel,
    occludedToDozingTransitionViewModel: OccludedToDozingTransitionViewModel,
) {
    val color: Flow<Int> =
        deviceEntryIconViewModel.useBackgroundProtection.flatMapLatest { useBackground ->
@@ -98,7 +97,6 @@ constructor(
                        goneToLockscreenTransitionViewModel.deviceEntryBackgroundViewAlpha,
                        goneToDozingTransitionViewModel.deviceEntryBackgroundViewAlpha,
                        primaryBouncerToDozingTransitionViewModel.deviceEntryBackgroundViewAlpha,
                        lockscreenToDozingTransitionViewModel.deviceEntryBackgroundViewAlpha,
                        dozingToLockscreenTransitionViewModel.deviceEntryBackgroundViewAlpha,
                        alternateBouncerToDozingTransitionViewModel.deviceEntryBackgroundViewAlpha,
                        dreamingToAodTransitionViewModel.deviceEntryBackgroundViewAlpha,
+9 −17
Original line number Diff line number Diff line
@@ -45,13 +45,7 @@ constructor(
            edge = Edge.create(from = LOCKSCREEN, to = DOZING),
        )

    val lockscreenAlpha: Flow<Float> =
        transitionAnimation.sharedFlow(
            duration = 250.milliseconds,
            onStep = { 1 - it },
            onFinish = { 1f },
            onCancel = { 1f },
        )
    val lockscreenAlpha: Flow<Float> = transitionAnimation.immediatelyTransitionTo(1f)

    val shortcutsAlpha: Flow<Float> =
        transitionAnimation.sharedFlow(
@@ -61,18 +55,16 @@ constructor(
            onCancel = { 1f },
        )

    val deviceEntryBackgroundViewAlpha: Flow<Float> =
        transitionAnimation.immediatelyTransitionTo(0f)

    override val deviceEntryParentViewAlpha: Flow<Float> =
        deviceEntryUdfpsInteractor.isUdfpsEnrolledAndEnabled.flatMapLatest {
            isUdfpsEnrolledAndEnabled ->
            transitionAnimation.immediatelyTransitionTo(
            if (isUdfpsEnrolledAndEnabled) {
                    1f
                transitionAnimation.immediatelyTransitionTo(1f)
            } else {
                    0f
                }
                transitionAnimation.sharedFlow(
                    duration = 250.milliseconds,
                    onStep = { 1f - it },
                )
            }
        }
}