diff options
| author | 2024-10-03 18:23:08 -0400 | |
|---|---|---|
| committer | 2024-10-04 15:14:23 -0400 | |
| commit | 40aa6d94b61f04c1dc822783447d8e5847dc0ff5 (patch) | |
| tree | 79ba3b85ae91e4f8130196857cf1fc493da52245 | |
| parent | f5429b946d2bde507fb8701e1f6dda85828fd6f6 (diff) | |
Return to OCCLUDED from canceled swipe if needed.
An edge case of a canceled screen off, followed by a partial swipe up to PRIMARY_BOUNCER, followed by a slightly late call to setOccluded=true resulted in the lockscreen overlapping the occluding app until a screen off.
Tests in a follow-up CL (really!) because there are no existing tests for the dragging transition and it's a fairly large change to add support for that.
Bug: 370177430
Test: manual/shortly
Flag: EXEMPT bugfix
Change-Id: I6af8b473756e43ebccecbccdd6c97d8d082ef912
| -rw-r--r-- | packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt index 1e9541e1923e..6d1d9cbd9aae 100644 --- a/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt +++ b/packages/SystemUI/src/com/android/systemui/keyguard/domain/interactor/FromLockscreenTransitionInteractor.kt @@ -189,6 +189,7 @@ constructor( internalTransitionInteractor.currentTransitionInfoInternal, keyguardInteractor.statusBarState, keyguardInteractor.isKeyguardDismissible, + keyguardInteractor.isKeyguardOccluded, ) .collect { ( @@ -196,7 +197,8 @@ constructor( startedStep, currentTransitionInfo, statusBarState, - isKeyguardUnlocked) -> + isKeyguardUnlocked, + isKeyguardOccluded) -> val id = transitionId if (id != null) { if (startedStep.to == KeyguardState.PRIMARY_BOUNCER) { @@ -236,9 +238,13 @@ constructor( if (nextState == TransitionState.CANCELED) { transitionRepository.startTransition( TransitionInfo( - ownerName = name, + ownerName = + "$name " + + "(on behalf of FromPrimaryBouncerInteractor)", from = KeyguardState.PRIMARY_BOUNCER, - to = KeyguardState.LOCKSCREEN, + to = + if (isKeyguardOccluded) KeyguardState.OCCLUDED + else KeyguardState.LOCKSCREEN, modeOnCanceled = TransitionModeOnCanceled.REVERSE, animator = getDefaultAnimatorForTransitionsToState( |