Set the reason for screen-off before usage.
An occasional call sequence through updateLightsLocked ended up storing the old screen-off reason rather than the current screen-off reason. This caused the Keyguard screen to be bypassed when turning back on. By saving the power-off reason in mScreenOffReason prior to calling updateLightsLocked we eliminate this problem. The offending calling sequence was: PowerManagerService.setPowerState(..., reason) => updateLightsLocked => animateTo => screenOffFinishedAminatingLocked(mScreenOffReason) => sendNotificationLocked. Change-Id: I8ee0b3226f94af7ff7e7b7b0bf54e47fd0c03631
This commit is contained in:
@ -1858,6 +1858,7 @@ public class PowerManagerService extends IPowerManager.Stub
|
||||
} else {
|
||||
// Update the lights *before* taking care of turning the
|
||||
// screen off, so we can initiate any animations that are desired.
|
||||
mScreenOffReason = reason;
|
||||
if (stateChanged) {
|
||||
updateLightsLocked(newState, 0);
|
||||
}
|
||||
@ -1876,7 +1877,6 @@ public class PowerManagerService extends IPowerManager.Stub
|
||||
Binder.restoreCallingIdentity(identity);
|
||||
}
|
||||
mPowerState &= ~SCREEN_ON_BIT;
|
||||
mScreenOffReason = reason;
|
||||
if (!mScreenBrightnessAnimator.isAnimating()) {
|
||||
err = screenOffFinishedAnimatingLocked(reason);
|
||||
} else {
|
||||
|
Reference in New Issue
Block a user