summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Robin Lee <rgl@google.com> 2023-05-24 15:09:26 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2023-05-24 15:09:26 +0000
commit65281547ea3358e6fe48f3279027360fc54b1b58 (patch)
treefb4dbdb69553879c9ab599f19544d3b2e9c6bd0b
parentec8f827230d31d097f4a55deb7ffda1265f0eeee (diff)
parent0c6c517de28b8a8c100e18d3916e62e3b9bc2588 (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.java21
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",