summaryrefslogtreecommitdiff
path: root/libs
diff options
context:
space:
mode:
Diffstat (limited to 'libs')
-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",