diff options
| author | 2023-05-24 15:09:26 +0000 | |
|---|---|---|
| committer | 2023-05-24 15:09:26 +0000 | |
| commit | 65281547ea3358e6fe48f3279027360fc54b1b58 (patch) | |
| tree | fb4dbdb69553879c9ab599f19544d3b2e9c6bd0b | |
| parent | ec8f827230d31d097f4a55deb7ffda1265f0eeee (diff) | |
| parent | 0c6c517de28b8a8c100e18d3916e62e3b9bc2588 (diff) | |
Merge "Play over-keyguard transitions in default handler" into udc-dev
| -rw-r--r-- | libs/WindowManager/Shell/src/com/android/wm/shell/keyguard/KeyguardTransitionHandler.java | 21 |
1 files changed, 13 insertions, 8 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 4d8075a9b56c..658359ed31d0 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 @@ -121,21 +121,21 @@ public class KeyguardTransitionHandler implements Transitions.TransitionHandler } boolean hasOpeningOcclude = false; + boolean hasClosingOcclude = false; boolean hasOpeningDream = false; boolean hasClosingApp = false; // Check for occluding/dream/closing apps for (int i = info.getChanges().size() - 1; i >= 0; i--) { final TransitionInfo.Change change = info.getChanges().get(i); - if (isOpeningType(change.getMode())) { - if (change.hasFlags(FLAG_OCCLUDES_KEYGUARD)) { - hasOpeningOcclude = true; - } - if (change.getTaskInfo() != null - && change.getTaskInfo().getActivityType() == ACTIVITY_TYPE_DREAM) { - hasOpeningDream = true; - } + if ((change.getFlags() & TransitionInfo.FLAG_IS_WALLPAPER) != 0) { + continue; + } else if (isOpeningType(change.getMode())) { + hasOpeningOcclude |= change.hasFlags(FLAG_OCCLUDES_KEYGUARD); + hasOpeningDream |= (change.getTaskInfo() != null + && change.getTaskInfo().getActivityType() == ACTIVITY_TYPE_DREAM); } else if (isClosingType(change.getMode())) { + hasClosingOcclude |= change.hasFlags(FLAG_OCCLUDES_KEYGUARD); hasClosingApp = true; } } @@ -147,6 +147,11 @@ public class KeyguardTransitionHandler implements Transitions.TransitionHandler transition, info, startTransaction, finishTransaction, finishCallback); } if (hasOpeningOcclude || info.getType() == TRANSIT_KEYGUARD_OCCLUDE) { + if (hasClosingOcclude) { + // Transitions between apps on top of the keyguard can use the default handler. + // WM sends a final occlude status update after the transition is finished. + return false; + } if (hasOpeningDream) { return startAnimation(mOccludeByDreamTransition, "occlude-by-dream", |