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:
@ -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;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user