diff options
| author | 2024-08-01 15:47:57 +0800 | |
|---|---|---|
| committer | 2024-08-05 10:50:27 +0800 | |
| commit | ab16c881566b7c848027f50eb85d2e4fb12c989e (patch) | |
| tree | 8ea2020b03b822756f67f887b4562984bee67ebc | |
| parent | a3292406720e7305be733180e6da47b3f1ac8051 (diff) | |
Allow keyguard transition handler to play going away animation...
...even when systemui is launch activity over keyguard.
Althought the ActivityStarterInternal would wrap the launch activity
animation to remote transition, there can still have chance to unlock
keyguard just after start activity request.
In core, there can have two scenario:
1. Core could send two separate transition to shell, first one is the
open app transition and should be handled by remote transition. The
second transition is keyguard going away, which should be handled by
KeyguardTransitionHandler.
2. Core only send one transition which contains KeyguardGoingAway and
Occluding flag. To ensure the status correct in Keyguard, this
transition should be handled by KeyguardTransitionHandler.
Occluding state can be correct through PhoneWindowManager ->
KeyguardService, so just need to make sure the going-away signal has
send to SystemUI.
Flag: EXEMPT bugfix
Bug: 352053143
Test: launch activity over keyguard, then dismiss the app, verify nothing
is break.
Change-Id: I8254ffe93547dd24e7835d846994d0c940bbea62
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java index 333c75f92ffc..abec3b9c0c3b 100644 --- a/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java +++ b/libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java @@ -170,7 +170,7 @@ public class KeyguardTransitionHandler @NonNull SurfaceControl.Transaction startTransaction, @NonNull SurfaceControl.Transaction finishTransaction, @NonNull TransitionFinishCallback finishCallback) { - if (!handles(info) || mIsLaunchingActivityOverLockscreen) { + if (!handles(info)) { return false; } @@ -185,6 +185,9 @@ public class KeyguardTransitionHandler transition, info, startTransaction, finishTransaction, finishCallback); } + if (mIsLaunchingActivityOverLockscreen) { + return false; + } // Occlude/unocclude animations are only played if the keyguard is locked. if ((info.getFlags() & TRANSIT_FLAG_KEYGUARD_LOCKED) != 0) { |