From 503d6a44a8193d8111eba393651dcb522cc1cf87 Mon Sep 17 00:00:00 2001 From: Craig Mautner Date: Mon, 25 Jun 2012 11:13:24 -0700 Subject: [PATCH] DO NOT MERGE Set force hiding differently Only force hide windows when the keyguard is animating in. Fixes bug 6721572. Change-Id: Iad7b8b811bcf0840726cbf6c6f279dabd08a3aba Conflicts: services/java/com/android/server/wm/WindowAnimator.java --- services/java/com/android/server/wm/WindowAnimator.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/java/com/android/server/wm/WindowAnimator.java index fdd8aaba97d51..db3b2bd1b8c1b 100644 --- a/services/java/com/android/server/wm/WindowAnimator.java +++ b/services/java/com/android/server/wm/WindowAnimator.java @@ -3,6 +3,7 @@ package com.android.server.wm; import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WALLPAPER; +import static android.view.WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED; import static com.android.server.wm.WindowManagerService.LayoutFields.SET_UPDATE_ROTATION; import static com.android.server.wm.WindowManagerService.LayoutFields.SET_WALLPAPER_MAY_CHANGE; @@ -278,7 +279,7 @@ public class WindowAnimator { } mService.mFocusMayChange = true; } - if (win.isReadyForDisplay() && !winAnimator.isAnimating()) { + if (win.isReadyForDisplay() && winAnimator.mAnimationIsEntrance) { mForceHiding = true; } if (WindowManagerService.DEBUG_VISIBILITY) Slog.v(TAG, @@ -292,7 +293,8 @@ public class WindowAnimator { + " anim=" + win.mWinAnimator.mAnimation); } else if (mPolicy.canBeForceHidden(win, win.mAttrs)) { final boolean changed; - if (mForceHiding && !winAnimator.isAnimating()) { + if (mForceHiding && (!winAnimator.isAnimating() + || (winAnimator.mAttrFlags & FLAG_SHOW_WHEN_LOCKED) == 0)) { changed = win.hideLw(false, false); if (WindowManagerService.DEBUG_VISIBILITY && changed) Slog.v(TAG, "Now policy hidden: " + win);