diff options
author | 2024-05-07 15:06:13 +0000 | |
---|---|---|
committer | 2024-05-07 15:06:13 +0000 | |
commit | 527328489ab6467872b77cbbb7921f2c7db7916c (patch) | |
tree | 8f6ccdc887a97f6c37c5cc8608f95ad17f92d9ab | |
parent | 50f9f5c6f127ac069d6afcaac9df4e69ab60ec21 (diff) | |
parent | 7149fac734827392ffc752c428abd66ee2eddb00 (diff) |
Merge "Fix isNotificationLaunchAnimationRunningOnKeyguard." into main
2 files changed, 29 insertions, 2 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractor.kt index 20b7b2a91ade..82255a0c0d54 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractor.kt @@ -31,6 +31,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.combine import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.map +import kotlinx.coroutines.flow.onStart /** * Distance over which the surface behind the keyguard is animated in during a Y-translation @@ -102,8 +103,11 @@ constructor( */ private val isNotificationLaunchAnimationRunningOnKeyguard = notificationLaunchInteractor.isLaunchAnimationRunning - .sample(transitionInteractor.finishedKeyguardState) - .map { it != KeyguardState.GONE } + .sample(transitionInteractor.finishedKeyguardState, ::Pair) + .map { (animationRunning, finishedState) -> + animationRunning && finishedState != KeyguardState.GONE + } + .onStart { emit(false) } /** * Whether we're animating the surface, or a notification launch animation is running (which diff --git a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt index 9ccf2121b8d2..f32e7757328f 100644 --- a/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt +++ b/packages/SystemUI/tests/src/com/android/systemui/keyguard/domain/interactor/KeyguardSurfaceBehindInteractorTest.kt @@ -274,4 +274,27 @@ class KeyguardSurfaceBehindInteractorTest : SysuiTestCase() { runCurrent() assertThat(isAnimatingSurface).isFalse() } + + @Test + fun notificationLaunchFalse_isAnimatingSurfaceFalse() = + testScope.runTest { + val isAnimatingSurface by collectLastValue(underTest.isAnimatingSurface) + transitionRepository.sendTransitionStep( + TransitionStep( + from = KeyguardState.AOD, + to = KeyguardState.LOCKSCREEN, + transitionState = TransitionState.STARTED, + ) + ) + transitionRepository.sendTransitionStep( + TransitionStep( + from = KeyguardState.AOD, + to = KeyguardState.LOCKSCREEN, + transitionState = TransitionState.FINISHED, + ) + ) + kosmos.notificationLaunchAnimationInteractor.setIsLaunchAnimationRunning(false) + runCurrent() + assertThat(isAnimatingSurface).isFalse() + } } |