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

Commit 0da20c15 authored by Andreas Miko's avatar Andreas Miko
Browse files

Transform and consolidate transitionStepsFromState callers

Removing transitionStepsFromState has two goals:
a. Consolidate the API surface of KeyguardTransitionInteractor
b. transitionStepsFromState could only accept states. Use transition API instead which enables scenes or states as input.

All callers are now transformed to use the right APIs.

Test: None
Bug: b/330311871
Flag: com.android.systemui.scene_container
Change-Id: I4271d2c7736ffa5f28775e6bbb82f02a6dd40862
parent 4268db22
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -62,10 +62,10 @@ constructor(
        if (restartDreamOnUnocclude()) {
            keyguardTransitionInteractor.startedKeyguardTransitionStep
                .sample(keyguardInteractor.isDreaming, ::Pair)
                .filter {
                    it.first.from == KeyguardState.OCCLUDED &&
                        it.first.to == KeyguardState.DREAMING &&
                        !it.second
                .filter { (step, isDreaming) ->
                    step.from == KeyguardState.OCCLUDED &&
                        step.to == KeyguardState.DREAMING &&
                        !isDreaming
                }
                .onEach { dreamManager.startDream() }
                .launchIn(bgScope)
+13 −7
Original line number Diff line number Diff line
@@ -21,12 +21,14 @@ import com.android.systemui.communal.domain.interactor.CommunalInteractor
import com.android.systemui.communal.util.CommunalColors
import com.android.systemui.dagger.SysUISingleton
import com.android.systemui.keyguard.domain.interactor.KeyguardTransitionInteractor
import com.android.systemui.keyguard.shared.model.Edge
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.TransitionState
import com.android.systemui.keyguard.ui.viewmodel.DreamingToGlanceableHubTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToDreamingTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.GlanceableHubToLockscreenTransitionViewModel
import com.android.systemui.keyguard.ui.viewmodel.LockscreenToGlanceableHubTransitionViewModel
import com.android.systemui.scene.shared.model.Scenes
import javax.inject.Inject
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.flow.Flow
@@ -53,7 +55,7 @@ constructor(
    // Show UMO on glanceable hub immediately on transition into glanceable hub
    private val showUmoFromOccludedToGlanceableHub: Flow<Boolean> =
        keyguardTransitionInteractor
            .transitionStepsFromState(KeyguardState.OCCLUDED)
            .transition(Edge.create(from = KeyguardState.OCCLUDED))
            .filter {
                it.to == KeyguardState.GLANCEABLE_HUB &&
                    (it.transitionState == TransitionState.STARTED ||
@@ -63,7 +65,10 @@ constructor(

    private val showUmoFromGlanceableHubToOccluded: Flow<Boolean> =
        keyguardTransitionInteractor
            .transitionStepsFromState(KeyguardState.GLANCEABLE_HUB)
            .transition(
                edge = Edge.create(from = Scenes.Communal),
                edgeWithoutSceneContainer = Edge.create(from = KeyguardState.GLANCEABLE_HUB)
            )
            .filter {
                it.to == KeyguardState.OCCLUDED &&
                    (it.transitionState == TransitionState.FINISHED ||
@@ -91,8 +96,9 @@ constructor(
    val showCommunalFromOccluded: Flow<Boolean> = communalInteractor.showCommunalFromOccluded

    val transitionFromOccludedEnded =
        keyguardTransitionInteractor.transitionStepsFromState(KeyguardState.OCCLUDED).filter { step
            ->
        keyguardTransitionInteractor
            .transition(Edge.create(from = KeyguardState.OCCLUDED))
            .filter { step ->
                step.transitionState == TransitionState.FINISHED ||
                    step.transitionState == TransitionState.CANCELED
            }
+3 −2
Original line number Diff line number Diff line
@@ -24,10 +24,10 @@ import com.android.systemui.dagger.qualifiers.Background
import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.keyguard.KeyguardWmStateRefactor
import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository
import com.android.systemui.keyguard.shared.model.Edge
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.power.domain.interactor.PowerInteractor
import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.util.kotlin.Utils.Companion.sample as sampleCombine
import com.android.wm.shell.animation.Interpolators
import javax.inject.Inject
import kotlin.time.Duration.Companion.milliseconds
@@ -46,6 +46,7 @@ import kotlinx.coroutines.flow.merge
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.launch
import com.android.systemui.util.kotlin.Utils.Companion.sample as sampleCombine

@ExperimentalCoroutinesApi
@SysUISingleton
@@ -83,7 +84,7 @@ constructor(
    val surfaceBehindVisibility: Flow<Boolean?> =
        combine(
                transitionInteractor.startedKeyguardTransitionStep,
                transitionInteractor.transitionStepsFromState(KeyguardState.ALTERNATE_BOUNCER)
                transitionInteractor.transition(Edge.create(from = KeyguardState.ALTERNATE_BOUNCER))
            ) { startedStep, fromBouncerStep ->
                if (startedStep.to != KeyguardState.GONE) {
                    return@combine null
+6 −1
Original line number Diff line number Diff line
@@ -25,10 +25,12 @@ import com.android.systemui.dagger.qualifiers.Main
import com.android.systemui.flags.FeatureFlags
import com.android.systemui.keyguard.KeyguardWmStateRefactor
import com.android.systemui.keyguard.data.repository.KeyguardTransitionRepository
import com.android.systemui.keyguard.shared.model.Edge
import com.android.systemui.keyguard.shared.model.KeyguardState
import com.android.systemui.keyguard.shared.model.TransitionModeOnCanceled
import com.android.systemui.power.domain.interactor.PowerInteractor
import com.android.systemui.scene.shared.flag.SceneContainerFlag
import com.android.systemui.scene.shared.model.Scenes
import com.android.systemui.user.domain.interactor.SelectedUserInteractor
import com.android.systemui.util.kotlin.Utils.Companion.sample
import com.android.systemui.util.kotlin.sample
@@ -81,7 +83,10 @@ constructor(
    val surfaceBehindVisibility: Flow<Boolean?> =
        combine(
                transitionInteractor.startedKeyguardTransitionStep,
                transitionInteractor.transitionStepsFromState(KeyguardState.PRIMARY_BOUNCER)
                transitionInteractor.transition(
                    edge = Edge.create(from = Scenes.Bouncer),
                    edgeWithoutSceneContainer = Edge.create(from = KeyguardState.PRIMARY_BOUNCER)
                )
            ) { startedStep, fromBouncerStep ->
                if (startedStep.to != KeyguardState.GONE) {
                    return@combine null
+0 −8
Original line number Diff line number Diff line
@@ -413,10 +413,6 @@ constructor(
    /** Whether we've currently STARTED a transition and haven't yet FINISHED it. */
    val isInTransitionToAnyState = isInTransitionWhere({ true }, { true })

    fun transitionStepsFromState(fromState: KeyguardState): Flow<TransitionStep> {
        return transition(Edge.create(from = fromState, to = null))
    }

    fun transitionStepsToState(toState: KeyguardState): Flow<TransitionStep> {
        return transition(Edge.create(from = null, to = toState))
    }
@@ -556,10 +552,6 @@ constructor(
        return currentKeyguardState.replayCache.last()
    }

    fun getStartedState(): KeyguardState {
        return startedKeyguardState.replayCache.last()
    }

    fun getStartedFromState(): KeyguardState {
        return startedKeyguardFromState.replayCache.last()
    }
Loading