diff options
| author | 2024-07-10 10:55:11 +0000 | |
|---|---|---|
| committer | 2024-07-10 10:55:11 +0000 | |
| commit | 1e49841f15a8da0437a517075acaaf0053a98635 (patch) | |
| tree | 552d041058701c1e416cc97c42494f522e943c0b | |
| parent | af1aab6e98d48e5bd9701e8c76610d764252026e (diff) | |
| parent | 0ff0343eee191e97d9fea9d62816d93f8f3cf818 (diff) | |
Merge "[Flexiglass] Clean up deprecated PRIMARY_BOUNCER users" into main
10 files changed, 45 insertions, 23 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAodTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAodTransitionInteractor.kt index d41c0c557f64..893835a38c53 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAodTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromAodTransitionInteractor.kt @@ -199,6 +199,7 @@ constructor( * PRIMARY_BOUNCER. */ private fun listenForAodToPrimaryBouncer() { + // TODO(b/336576536): Check if adaptation for scene framework is needed if (SceneContainerFlag.isEnabled) return scope.launch("$TAG#listenForAodToPrimaryBouncer") { keyguardInteractor.primaryBouncerShowing diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt index 84ca6672d509..f3ca9df6491c 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromOccludedTransitionInteractor.kt @@ -71,6 +71,8 @@ constructor( } private fun listenForOccludedToPrimaryBouncer() { + // TODO(b/336576536): Check if adaptation for scene framework is needed + if (SceneContainerFlag.isEnabled) return scope.launch { keyguardInteractor.primaryBouncerShowing .filterRelevantKeyguardStateAnd { isBouncerShowing -> isBouncerShowing } diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt index 1aac1c5940b3..f4d82659971d 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractor.kt @@ -25,9 +25,8 @@ import com.android.systemui.keyguard.shared.model.KeyguardDone import com.android.systemui.keyguard.shared.model.KeyguardState.ALTERNATE_BOUNCER import com.android.systemui.keyguard.shared.model.KeyguardState.GONE import com.android.systemui.keyguard.shared.model.KeyguardState.PRIMARY_BOUNCER -import com.android.systemui.scene.domain.interactor.SceneInteractor -import com.android.systemui.scene.shared.flag.SceneContainerFlag import com.android.systemui.scene.shared.model.Scenes +import com.android.systemui.util.kotlin.Utils.Companion.sampleFilter import com.android.systemui.util.kotlin.sample import javax.inject.Inject import kotlinx.coroutines.CoroutineScope @@ -35,6 +34,7 @@ import kotlinx.coroutines.ExperimentalCoroutinesApi import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.SharingStarted import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.filter import kotlinx.coroutines.flow.filterNot import kotlinx.coroutines.flow.map @@ -51,7 +51,6 @@ constructor( transitionInteractor: KeyguardTransitionInteractor, val dismissInteractor: KeyguardDismissInteractor, @Application private val applicationScope: CoroutineScope, - sceneInteractor: SceneInteractor, ) { val dismissAction: Flow<DismissAction> = repository.dismissAction @@ -76,11 +75,10 @@ constructor( ) private val finishedTransitionToGone: Flow<Unit> = - if (SceneContainerFlag.isEnabled) { - sceneInteractor.transitionState.filter { it.isIdle(Scenes.Gone) }.map {} - } else { - transitionInteractor.finishedKeyguardState.filter { it == GONE }.map {} - } + transitionInteractor + .isFinishedIn(scene = Scenes.Gone, stateWithoutSceneContainer = GONE) + .filter { it } + .map {} val executeDismissAction: Flow<() -> KeyguardDone> = merge( @@ -90,12 +88,24 @@ constructor( .sample(dismissAction) .filterNot { it is DismissAction.None } .map { it.onDismissAction } + val resetDismissAction: Flow<Unit> = - transitionInteractor.finishedKeyguardTransitionStep - .filter { it.to != ALTERNATE_BOUNCER && it.to != PRIMARY_BOUNCER && it.to != GONE } - .sample(dismissAction) - .filterNot { it is DismissAction.None } - .map {} // map to Unit + combine( + transitionInteractor.isFinishedIn( + scene = Scenes.Gone, + stateWithoutSceneContainer = GONE + ), + transitionInteractor.isFinishedIn( + scene = Scenes.Bouncer, + stateWithoutSceneContainer = PRIMARY_BOUNCER + ), + transitionInteractor.isFinishedIn(state = ALTERNATE_BOUNCER) + ) { isOnGone, isOnBouncer, isOnAltBouncer -> + !isOnGone && !isOnBouncer && !isOnAltBouncer + } + .filter { it } + .sampleFilter(dismissAction) { it !is DismissAction.None } + .map {} fun runDismissAnimationOnKeyguard(): Boolean { return willAnimateDismissActionOnLockscreen.value diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt index 0985e69ff8ff..e1b333dd1d06 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/WindowManagerLockscreenVisibilityInteractor.kt @@ -82,6 +82,7 @@ constructor( private val transitionSpecificSurfaceBehindVisibility: Flow<Boolean?> = transitionInteractor.startedKeyguardTransitionStep .flatMapLatest { startedStep -> + SceneContainerFlag.assertInLegacyMode() when (startedStep.from) { KeyguardState.LOCKSCREEN -> { fromLockscreenInteractor.surfaceBehindVisibility diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt index 95043520c41b..24db3c2c70a2 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/shared/model/KeyguardState.kt @@ -61,6 +61,11 @@ enum class KeyguardState { * The security screen prompt UI, containing PIN, Password, Pattern for the user to verify their * credentials. */ + @Deprecated( + "This state won't exist anymore when scene container gets enabled. If you are " + + "writing prod code today, make sure to either use flag aware APIs in " + + "[KeyguardTransitionInteractor] or flag appropriately with [SceneContainerFlag]." + ) PRIMARY_BOUNCER, /** * Device is actively displaying keyguard UI and is not in low-power mode. Device may be @@ -72,12 +77,22 @@ enum class KeyguardState { * hub UI. From this state, the user can swipe from the left edge to go back to the lock screen * or dream, as well as swipe down for the notifications and up for the bouncer. */ + @Deprecated( + "This state won't exist anymore when scene container gets enabled. If you are " + + "writing prod code today, make sure to either use flag aware APIs in " + + "[KeyguardTransitionInteractor] or flag appropriately with [SceneContainerFlag]." + ) GLANCEABLE_HUB, /** * Keyguard is no longer visible. In most cases the user has just authenticated and keyguard is * being removed, but there are other cases where the user is swiping away keyguard, such as * with SWIPE security method or face unlock without bypass. */ + @Deprecated( + "This state won't exist anymore when scene container gets enabled. If you are " + + "writing prod code today, make sure to either use flag aware APIs in " + + "[KeyguardTransitionInteractor] or flag appropriately with [SceneContainerFlag]." + ) GONE, /** * Only used in scene framework. This means we are currently on any scene framework scene that diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt index 0fb29c297002..7c468071d1f8 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/KeyguardRootViewModel.kt @@ -160,7 +160,7 @@ constructor( edgeWithoutSceneContainer = Edge.create(from = LOCKSCREEN, to = GONE), ), keyguardTransitionInteractor.isInTransition( - edge = Edge.create(from = PRIMARY_BOUNCER, to = Scenes.Lockscreen), + edge = Edge.create(from = Scenes.Bouncer, to = LOCKSCREEN), edgeWithoutSceneContainer = Edge.create(from = PRIMARY_BOUNCER, to = LOCKSCREEN), ), diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToGlanceableHubTransitionViewModel.kt b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToGlanceableHubTransitionViewModel.kt index 754fb94a572e..9ec15dcff5f4 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToGlanceableHubTransitionViewModel.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/ui/viewmodel/PrimaryBouncerToGlanceableHubTransitionViewModel.kt @@ -23,7 +23,6 @@ import com.android.systemui.keyguard.shared.model.KeyguardState.GLANCEABLE_HUB import com.android.systemui.keyguard.shared.model.KeyguardState.PRIMARY_BOUNCER import com.android.systemui.keyguard.ui.KeyguardTransitionAnimationFlow import com.android.systemui.keyguard.ui.transitions.DeviceEntryIconTransition -import com.android.systemui.scene.shared.model.Scenes import javax.inject.Inject import kotlinx.coroutines.flow.Flow @@ -33,10 +32,7 @@ class PrimaryBouncerToGlanceableHubTransitionViewModel constructor(animationFlow: KeyguardTransitionAnimationFlow) : DeviceEntryIconTransition { private val transitionAnimation = animationFlow - .setup( - duration = TO_GLANCEABLE_HUB_DURATION, - edge = Edge.create(PRIMARY_BOUNCER, Scenes.Communal) - ) + .setup(duration = TO_GLANCEABLE_HUB_DURATION, edge = Edge.INVALID) .setupWithoutSceneContainer(edge = Edge.create(PRIMARY_BOUNCER, GLANCEABLE_HUB)) override val deviceEntryParentViewAlpha: Flow<Float> = diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java index e4edfa4a2bfe..069c6241491c 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/ScrimController.java @@ -474,6 +474,7 @@ public class ScrimController implements ViewTreeObserver.OnPreDrawListener, Dump // PRIMARY_BOUNCER->GONE collectFlow(behindScrim, mKeyguardTransitionInteractor.transition( + Edge.Companion.getINVALID(), Edge.Companion.create(PRIMARY_BOUNCER, GONE)), mBouncerToGoneTransition, mMainDispatcher); collectFlow(behindScrim, mPrimaryBouncerToGoneTransitionViewModel.getScrimAlpha(), diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt index 974e3bb133d8..8bc0a6040e12 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorTest.kt @@ -31,7 +31,6 @@ import com.android.systemui.keyguard.shared.model.KeyguardState import com.android.systemui.kosmos.testScope import com.android.systemui.scene.data.repository.Idle import com.android.systemui.scene.data.repository.setSceneTransition -import com.android.systemui.scene.domain.interactor.sceneInteractor import com.android.systemui.scene.shared.model.Scenes import com.android.systemui.testKosmos import com.google.common.truth.Truth.assertThat @@ -75,7 +74,6 @@ class KeyguardDismissActionInteractorTest : SysuiTestCase() { transitionInteractor = kosmos.keyguardTransitionInteractor, dismissInteractor = dismissInteractorWithDependencies.interactor, applicationScope = testScope.backgroundScope, - sceneInteractor = kosmos.sceneInteractor, ) } diff --git a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorKosmos.kt b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorKosmos.kt index 03e5a90c9f7d..2c6d44f10152 100644 --- a/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorKosmos.kt +++ b/packages/SystemUI/tests/utils/src/com/android/systemui/keyguard/domain/interactor/KeyguardDismissActionInteractorKosmos.kt @@ -19,7 +19,6 @@ package com.android.systemui.keyguard.domain.interactor import com.android.systemui.keyguard.data.repository.keyguardRepository import com.android.systemui.kosmos.Kosmos import com.android.systemui.kosmos.testScope -import com.android.systemui.scene.domain.interactor.sceneInteractor import kotlinx.coroutines.ExperimentalCoroutinesApi @ExperimentalCoroutinesApi @@ -30,6 +29,5 @@ val Kosmos.keyguardDismissActionInteractor by transitionInteractor = keyguardTransitionInteractor, dismissInteractor = keyguardDismissInteractor, applicationScope = testScope.backgroundScope, - sceneInteractor = sceneInteractor, ) } |