am 74e19f57: am 6f955df8: am 550b44d1: am f4644189: am 4cf6286c: am 02c7ba73: am 41bb0637: am 76e85eec: am 3bc9971d: am 95d6e32b: am 86f9a93e: Merge "Allow FLAG_SHOW_WHEN_LOCKED to apply to dialogs" into jb-mr1-dev

* commit '74e19f572a598ce907661ed2f5127319f8d7c635':
  Allow FLAG_SHOW_WHEN_LOCKED to apply to dialogs
This commit is contained in:
Craig Mautner
2014-03-25 20:11:08 +00:00
committed by Android Git Automerger

View File

@ -105,6 +105,7 @@ import java.io.File;
import java.io.FileReader; import java.io.FileReader;
import java.io.IOException; import java.io.IOException;
import java.io.PrintWriter; import java.io.PrintWriter;
import java.util.HashSet;
import static android.view.WindowManager.LayoutParams.*; import static android.view.WindowManager.LayoutParams.*;
import static android.view.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT; import static android.view.WindowManagerPolicy.WindowManagerFuncs.LID_ABSENT;
@ -381,7 +382,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
static final Rect mTmpNavigationFrame = new Rect(); static final Rect mTmpNavigationFrame = new Rect();
WindowState mTopFullscreenOpaqueWindowState; WindowState mTopFullscreenOpaqueWindowState;
boolean mHideWindowBehindKeyguard; HashSet<IApplicationToken> mAppsToBeHidden = new HashSet<IApplicationToken>();
boolean mTopIsFullscreen; boolean mTopIsFullscreen;
boolean mForceStatusBar; boolean mForceStatusBar;
boolean mForceStatusBarFromKeyguard; boolean mForceStatusBarFromKeyguard;
@ -3370,7 +3371,7 @@ public class PhoneWindowManager implements WindowManagerPolicy {
@Override @Override
public void beginPostLayoutPolicyLw(int displayWidth, int displayHeight) { public void beginPostLayoutPolicyLw(int displayWidth, int displayHeight) {
mTopFullscreenOpaqueWindowState = null; mTopFullscreenOpaqueWindowState = null;
mHideWindowBehindKeyguard = false; mAppsToBeHidden.clear();
mForceStatusBar = false; mForceStatusBar = false;
mForceStatusBarFromKeyguard = false; mForceStatusBarFromKeyguard = false;
mForcingShowNavBar = false; mForcingShowNavBar = false;
@ -3420,12 +3421,17 @@ public class PhoneWindowManager implements WindowManagerPolicy {
final boolean showWhenLocked = (attrs.flags & FLAG_SHOW_WHEN_LOCKED) != 0; final boolean showWhenLocked = (attrs.flags & FLAG_SHOW_WHEN_LOCKED) != 0;
if (appWindow) { if (appWindow) {
if (showWhenLocked) {
mAppsToBeHidden.remove(win.getAppToken());
} else {
mAppsToBeHidden.add(win.getAppToken());
}
if (attrs.x == 0 && attrs.y == 0 if (attrs.x == 0 && attrs.y == 0
&& attrs.width == WindowManager.LayoutParams.MATCH_PARENT && attrs.width == WindowManager.LayoutParams.MATCH_PARENT
&& attrs.height == WindowManager.LayoutParams.MATCH_PARENT) { && attrs.height == WindowManager.LayoutParams.MATCH_PARENT) {
if (DEBUG_LAYOUT) Slog.v(TAG, "Fullscreen window: " + win); if (DEBUG_LAYOUT) Slog.v(TAG, "Fullscreen window: " + win);
mTopFullscreenOpaqueWindowState = win; mTopFullscreenOpaqueWindowState = win;
if (!mHideWindowBehindKeyguard) { if (mAppsToBeHidden.isEmpty()) {
if (showWhenLocked) { if (showWhenLocked) {
if (DEBUG_LAYOUT) Slog.v(TAG, if (DEBUG_LAYOUT) Slog.v(TAG,
"Setting mHideLockScreen to true by win " + win); "Setting mHideLockScreen to true by win " + win);
@ -3445,8 +3451,6 @@ public class PhoneWindowManager implements WindowManagerPolicy {
if ((attrs.flags & FLAG_ALLOW_LOCK_WHILE_SCREEN_ON) != 0) { if ((attrs.flags & FLAG_ALLOW_LOCK_WHILE_SCREEN_ON) != 0) {
mAllowLockscreenWhenOn = true; mAllowLockscreenWhenOn = true;
} }
} else if (!showWhenLocked) {
mHideWindowBehindKeyguard = true;
} }
} }
} }