Framework change for #2583442: Navigation dies when night mode changes
The window manager doesn't retain its keep screen on lock while in the process of destroying and creating new activity windows during a config change. Now it does. Unfortunately, this doesn't help maps, since it doesn't use our lovely KEEP_SCREEN_ON flag. :p Change-Id: Ida4bc0fcfe132cdff2bd4eeb7ba0ce9731504d14
This commit is contained in:
@ -148,6 +148,7 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
static final boolean DEBUG_STARTING_WINDOW = false;
|
static final boolean DEBUG_STARTING_WINDOW = false;
|
||||||
static final boolean DEBUG_REORDER = false;
|
static final boolean DEBUG_REORDER = false;
|
||||||
static final boolean DEBUG_WALLPAPER = false;
|
static final boolean DEBUG_WALLPAPER = false;
|
||||||
|
static final boolean DEBUG_FREEZE = false;
|
||||||
static final boolean SHOW_TRANSACTIONS = false;
|
static final boolean SHOW_TRANSACTIONS = false;
|
||||||
static final boolean HIDE_STACK_CRAWLS = true;
|
static final boolean HIDE_STACK_CRAWLS = true;
|
||||||
static final boolean MEASURE_LATENCY = false;
|
static final boolean MEASURE_LATENCY = false;
|
||||||
@ -10695,23 +10696,28 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
} else if (animating) {
|
} else if (animating) {
|
||||||
requestAnimationLocked(currentTime+(1000/60)-SystemClock.uptimeMillis());
|
requestAnimationLocked(currentTime+(1000/60)-SystemClock.uptimeMillis());
|
||||||
}
|
}
|
||||||
mQueue.setHoldScreenLocked(holdScreen != null);
|
|
||||||
if (screenBrightness < 0 || screenBrightness > 1.0f) {
|
if (DEBUG_FREEZE) Slog.v(TAG, "Layout: mDisplayFrozen=" + mDisplayFrozen
|
||||||
mPowerManager.setScreenBrightnessOverride(-1);
|
+ " holdScreen=" + holdScreen);
|
||||||
} else {
|
if (!mDisplayFrozen) {
|
||||||
mPowerManager.setScreenBrightnessOverride((int)
|
mQueue.setHoldScreenLocked(holdScreen != null);
|
||||||
(screenBrightness * Power.BRIGHTNESS_ON));
|
if (screenBrightness < 0 || screenBrightness > 1.0f) {
|
||||||
}
|
mPowerManager.setScreenBrightnessOverride(-1);
|
||||||
if (buttonBrightness < 0 || buttonBrightness > 1.0f) {
|
} else {
|
||||||
mPowerManager.setButtonBrightnessOverride(-1);
|
mPowerManager.setScreenBrightnessOverride((int)
|
||||||
} else {
|
(screenBrightness * Power.BRIGHTNESS_ON));
|
||||||
mPowerManager.setButtonBrightnessOverride((int)
|
}
|
||||||
(buttonBrightness * Power.BRIGHTNESS_ON));
|
if (buttonBrightness < 0 || buttonBrightness > 1.0f) {
|
||||||
}
|
mPowerManager.setButtonBrightnessOverride(-1);
|
||||||
if (holdScreen != mHoldingScreenOn) {
|
} else {
|
||||||
mHoldingScreenOn = holdScreen;
|
mPowerManager.setButtonBrightnessOverride((int)
|
||||||
Message m = mH.obtainMessage(H.HOLD_SCREEN_CHANGED, holdScreen);
|
(buttonBrightness * Power.BRIGHTNESS_ON));
|
||||||
mH.sendMessage(m);
|
}
|
||||||
|
if (holdScreen != mHoldingScreenOn) {
|
||||||
|
mHoldingScreenOn = holdScreen;
|
||||||
|
Message m = mH.obtainMessage(H.HOLD_SCREEN_CHANGED, holdScreen);
|
||||||
|
mH.sendMessage(m);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mTurnOnScreen) {
|
if (mTurnOnScreen) {
|
||||||
@ -10988,6 +10994,8 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
mFreezeGcPending = now;
|
mFreezeGcPending = now;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (DEBUG_FREEZE) Slog.v(TAG, "*** FREEZING DISPLAY", new RuntimeException());
|
||||||
|
|
||||||
mDisplayFrozen = true;
|
mDisplayFrozen = true;
|
||||||
if (mNextAppTransition != WindowManagerPolicy.TRANSIT_UNSET) {
|
if (mNextAppTransition != WindowManagerPolicy.TRANSIT_UNSET) {
|
||||||
mNextAppTransition = WindowManagerPolicy.TRANSIT_UNSET;
|
mNextAppTransition = WindowManagerPolicy.TRANSIT_UNSET;
|
||||||
@ -11011,6 +11019,8 @@ public class WindowManagerService extends IWindowManager.Stub
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (DEBUG_FREEZE) Slog.v(TAG, "*** UNFREEZING DISPLAY", new RuntimeException());
|
||||||
|
|
||||||
mDisplayFrozen = false;
|
mDisplayFrozen = false;
|
||||||
mH.removeMessages(H.APP_FREEZE_TIMEOUT);
|
mH.removeMessages(H.APP_FREEZE_TIMEOUT);
|
||||||
if (PROFILE_ORIENTATION) {
|
if (PROFILE_ORIENTATION) {
|
||||||
|
Reference in New Issue
Block a user