diff --git a/core/java/android/view/WindowManagerPolicy.java b/core/java/android/view/WindowManagerPolicy.java index 858cf4b82c2d5..bd203c8737639 100644 --- a/core/java/android/view/WindowManagerPolicy.java +++ b/core/java/android/view/WindowManagerPolicy.java @@ -124,8 +124,6 @@ public interface WindowManagerPolicy { * to prepareAddWindow() until removeWindow(). */ public interface WindowState { - public final static int UNKNOWN_TASK_ID = -1; - /** * Return the uid of the app that owns this window. */ @@ -274,7 +272,7 @@ public interface WindowManagerPolicy { * Get the layer at which this window's surface will be Z-ordered. */ public int getSurfaceLayer(); - + /** * Return the token for the application (actually activity) that owns * this window. May return null for system windows. @@ -283,11 +281,6 @@ public interface WindowManagerPolicy { */ public IApplicationToken getAppToken(); - /** - * Return the taskId of the task that owns this window. - */ - public int getTaskId(); - /** * Return true if, at any point, the application token associated with * this window has actually displayed any windows. This is most useful diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java index 41705efc5ffc6..3c23c6e56cd09 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java @@ -106,7 +106,6 @@ import java.io.File; import java.io.FileReader; import java.io.IOException; import java.io.PrintWriter; -import java.util.HashSet; import static android.view.WindowManager.LayoutParams.*; import static android.view.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT; @@ -375,7 +374,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { static final Rect mTmpNavigationFrame = new Rect(); WindowState mTopFullscreenOpaqueWindowState; - HashSet mTasksToBeHidden = new HashSet(); + boolean mHideWindowBehindKeyguard; boolean mTopIsFullscreen; boolean mForceStatusBar; boolean mForceStatusBarFromKeyguard; @@ -3367,7 +3366,7 @@ public class PhoneWindowManager implements WindowManagerPolicy { @Override public void beginPostLayoutPolicyLw(int displayWidth, int displayHeight) { mTopFullscreenOpaqueWindowState = null; - mTasksToBeHidden.clear(); + mHideWindowBehindKeyguard = false; mForceStatusBar = false; mForceStatusBarFromKeyguard = false; mForcingShowNavBar = false; @@ -3418,18 +3417,12 @@ public class PhoneWindowManager implements WindowManagerPolicy { final boolean showWhenLocked = (fl & FLAG_SHOW_WHEN_LOCKED) != 0; if (appWindow) { - final int taskId = win.getTaskId(); - if (taskId != WindowState.UNKNOWN_TASK_ID && showWhenLocked) { - mTasksToBeHidden.remove(taskId); - } else { - mTasksToBeHidden.add(taskId); - } if (attrs.x == 0 && attrs.y == 0 && attrs.width == WindowManager.LayoutParams.MATCH_PARENT && attrs.height == WindowManager.LayoutParams.MATCH_PARENT) { if (DEBUG_LAYOUT) Slog.v(TAG, "Fullscreen window: " + win); mTopFullscreenOpaqueWindowState = win; - if (mTasksToBeHidden.isEmpty()) { + if (!mHideWindowBehindKeyguard) { if (showWhenLocked) { if (DEBUG_LAYOUT) Slog.v(TAG, "Setting mHideLockScreen to true by win " + win); @@ -3449,6 +3442,8 @@ public class PhoneWindowManager implements WindowManagerPolicy { if ((fl & FLAG_ALLOW_LOCK_WHILE_SCREEN_ON) != 0) { mAllowLockscreenWhenOn = true; } + } else if (!showWhenLocked) { + mHideWindowBehindKeyguard = true; } } } diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java index 3434053daa9ca..2c0e99ed12899 100644 --- a/services/core/java/com/android/server/wm/WindowState.java +++ b/services/core/java/com/android/server/wm/WindowState.java @@ -709,11 +709,6 @@ final class WindowState implements WindowManagerPolicy.WindowState { return mAppToken != null ? mAppToken.appToken : null; } - @Override - public int getTaskId() { - return mAppToken != null ? mAppToken.groupId : UNKNOWN_TASK_ID; - } - boolean setInsetsChanged() { mOverscanInsetsChanged |= !mLastOverscanInsets.equals(mOverscanInsets); mContentInsetsChanged |= !mLastContentInsets.equals(mContentInsets);