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

Commit 815b9743 authored by Matt Pietal's avatar Matt Pietal
Browse files

Remove reliance on bespoke transition methods

In favor of the general "transition()". This will support
an upcoming optimization.

Test: atest NotificationPanelViewControllerTest
Bug: 331748021
Flag: N/A
Change-Id: I7b93ad4e9f879c2f085c4f8352f33802fa8842de
parent f81c71a2
Loading
Loading
Loading
Loading
+1 −22
Original line number Diff line number Diff line
@@ -49,9 +49,7 @@ class OccludedToLockscreenTransitionViewModelTest : SysuiTestCase() {
    val keyguardTransitionRepository = kosmos.fakeKeyguardTransitionRepository
    val fingerprintPropertyRepository = kosmos.fingerprintPropertyRepository
    val configurationRepository = kosmos.fakeConfigurationRepository
    val underTest by lazy {
        kosmos.occludedToLockscreenTransitionViewModel
    }
    val underTest by lazy { kosmos.occludedToLockscreenTransitionViewModel }

    @Test
    fun lockscreenFadeIn() =
@@ -164,25 +162,6 @@ class OccludedToLockscreenTransitionViewModelTest : SysuiTestCase() {
            values.forEach { assertThat(it).isEqualTo(1f) }
        }

    @Test
    fun deviceEntryBackgroundView_noUdfpsEnrolled_noUpdates() =
        testScope.runTest {
            fingerprintPropertyRepository.supportsRearFps()
            biometricSettingsRepository.setIsFingerprintAuthEnrolledAndEnabled(true)
            val values by collectValues(underTest.deviceEntryBackgroundViewAlpha)

            keyguardTransitionRepository.sendTransitionStep(step(0f, TransitionState.STARTED))
            keyguardTransitionRepository.sendTransitionStep(step(0.1f))
            keyguardTransitionRepository.sendTransitionStep(step(0.3f))
            keyguardTransitionRepository.sendTransitionStep(step(0.4f))
            keyguardTransitionRepository.sendTransitionStep(step(0.5f))
            keyguardTransitionRepository.sendTransitionStep(step(0.6f))
            keyguardTransitionRepository.sendTransitionStep(step(0.8f))
            keyguardTransitionRepository.sendTransitionStep(step(1f))

            assertThat(values).isEmpty() // no updates
        }

    private fun step(
        value: Float,
        state: TransitionState = TransitionState.RUNNING
+2 −1
Original line number Diff line number Diff line
@@ -282,7 +282,8 @@ open class UdfpsKeyguardViewControllerLegacy(
    @VisibleForTesting
    suspend fun listenForGoneToAodTransition(scope: CoroutineScope): Job {
        return scope.launch {
            transitionInteractor.goneToAodTransition.collect { transitionStep ->
            transitionInteractor.transition(KeyguardState.GONE, KeyguardState.AOD).collect {
                transitionStep ->
                view.onDozeAmountChanged(
                    transitionStep.value,
                    transitionStep.value,
+9 −10
Original line number Diff line number Diff line
@@ -27,9 +27,9 @@ import com.android.systemui.keyguard.data.repository.BiometricSettingsRepository
import com.android.systemui.keyguard.domain.interactor.KeyguardInteractor
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.plugins.statusbar.StatusBarStateController
import com.android.systemui.statusbar.policy.KeyguardStateController
import com.android.systemui.util.kotlin.BooleanFlowOperators.or
import com.android.systemui.util.time.SystemClock
import dagger.Lazy
import javax.inject.Inject
@@ -78,15 +78,14 @@ constructor(
            bouncerRepository.alternateBouncerUIAvailable
        }
    private val isDozingOrAod: Flow<Boolean> =
        keyguardTransitionInteractor
            .get()
            .transitions
            .map {
                it.to == KeyguardState.DOZING ||
                    it.to == KeyguardState.AOD ||
                    ((it.from == KeyguardState.DOZING || it.from == KeyguardState.AOD) &&
                        it.transitionState != TransitionState.FINISHED)
            }
        or(
                keyguardTransitionInteractor.get().transitionValue(KeyguardState.DOZING).map {
                    it > 0f
                },
                keyguardTransitionInteractor.get().transitionValue(KeyguardState.AOD).map {
                    it > 0f
                },
            )
            .distinctUntilChanged()

    /**
+7 −3
Original line number Diff line number Diff line
@@ -37,6 +37,10 @@ import com.android.systemui.deviceentry.shared.model.ErrorFaceAuthenticationStat
import com.android.systemui.deviceentry.shared.model.FaceAuthenticationStatus
import com.android.systemui.keyguard.data.repository.BiometricSettingsRepository
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
import com.android.systemui.keyguard.shared.model.KeyguardState.AOD
import com.android.systemui.keyguard.shared.model.KeyguardState.DOZING
import com.android.systemui.keyguard.shared.model.KeyguardState.LOCKSCREEN
import com.android.systemui.keyguard.shared.model.KeyguardState.OFF
import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.log.FaceAuthenticationLogger
import com.android.systemui.power.domain.interactor.PowerInteractor
@@ -121,9 +125,9 @@ constructor(
            .launchIn(applicationScope)

        merge(
                keyguardTransitionInteractor.aodToLockscreenTransition,
                keyguardTransitionInteractor.offToLockscreenTransition,
                keyguardTransitionInteractor.dozingToLockscreenTransition
                keyguardTransitionInteractor.transition(AOD, LOCKSCREEN),
                keyguardTransitionInteractor.transition(OFF, LOCKSCREEN),
                keyguardTransitionInteractor.transition(DOZING, LOCKSCREEN),
            )
            .filter { it.transitionState == TransitionState.STARTED }
            .sample(powerInteractor.detailedWakefulness)
+14 −4
Original line number Diff line number Diff line
@@ -18,11 +18,21 @@ package com.android.systemui.keyguard.shared.model
/** Possible states for a running transition between [State] */
enum class TransitionState {
    /* Transition has begun. */
    STARTED,
    STARTED {
        override fun isActive() = true
    },
    /* Transition is actively running. */
    RUNNING,
    RUNNING {
        override fun isActive() = true
    },
    /* Transition has completed successfully. */
    FINISHED,
    FINISHED {
        override fun isActive() = false
    },
    /* Transition has been interrupted, and not completed successfully. */
    CANCELED,
    CANCELED {
        override fun isActive() = false
    };

    abstract fun isActive(): Boolean
}
Loading