Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 44bf70fb authored by Craig Mautner's avatar Craig Mautner
Browse files

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
parent 5d1907b2
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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 {