From 4a0ffb004a62595b6aac598445908013ab9d9915 Mon Sep 17 00:00:00 2001 From: Adrian Roos Date: Tue, 15 Jul 2014 18:31:10 +0200 Subject: [PATCH] Fix windows not showing when SHOW_WHEN_LOCKED changes Removes WindowStateAnimator's copy of the window flags, which was not updated when they changed. Bug: 15574002 Change-Id: I1ca3f8d5b521727fcb8da14ff1f8231e47b1e9b9 --- .../core/java/com/android/server/wm/WindowAnimator.java | 7 +++---- .../java/com/android/server/wm/WindowStateAnimator.java | 2 -- 2 files changed, 3 insertions(+), 6 deletions(-) diff --git a/services/core/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java index f1d0585d19bfa..27fff1d72406b 100644 --- a/services/core/java/com/android/server/wm/WindowAnimator.java +++ b/services/core/java/com/android/server/wm/WindowAnimator.java @@ -248,7 +248,7 @@ public class WindowAnimator { for (int i = windows.size() - 1; i >= 0; i--) { WindowState win = windows.get(i); WindowStateAnimator winAnimator = win.mWinAnimator; - final int flags = winAnimator.mAttrFlags; + final int flags = win.mAttrs.flags; if (winAnimator.mSurfaceControl != null) { final boolean wasAnimating = winAnimator.mWasAnimating; @@ -309,8 +309,7 @@ public class WindowAnimator { + " hidden=" + win.mRootToken.hidden + " anim=" + win.mWinAnimator.mAnimation); } else if (mPolicy.canBeForceHidden(win, win.mAttrs)) { - final boolean hideWhenLocked = - (winAnimator.mAttrFlags & FLAG_SHOW_WHEN_LOCKED) == 0; + final boolean hideWhenLocked = (flags & FLAG_SHOW_WHEN_LOCKED) == 0; final boolean changed; if (((mForceHiding == KEYGUARD_ANIMATING_IN) && (!winAnimator.isAnimating() || hideWhenLocked)) @@ -416,7 +415,7 @@ public class WindowAnimator { continue; } - final int flags = winAnimator.mAttrFlags; + final int flags = win.mAttrs.flags; // If this window is animating, make a note that we have // an animating window and take care of a request to run diff --git a/services/core/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java index b24072f54f35f..49d4ae90462e0 100644 --- a/services/core/java/com/android/server/wm/WindowStateAnimator.java +++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java @@ -172,7 +172,6 @@ class WindowStateAnimator { /** Was this window last hidden? */ boolean mLastHidden; - int mAttrFlags; int mAttrType; public WindowStateAnimator(final WindowState win) { @@ -197,7 +196,6 @@ class WindowStateAnimator { ? null : win.mAttachedWindow.mWinAnimator; mAppAnimator = win.mAppToken == null ? null : win.mAppToken.mAppAnimator; mSession = win.mSession; - mAttrFlags = win.mAttrs.flags; mAttrType = win.mAttrs.type; mIsWallpaper = win.mIsWallpaper; }