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

Commit 62458f4b authored by Santos Cordon's avatar Santos Cordon Committed by Android Build Coastguard Worker
Browse files

WaitForNegativeProximity stopped with power button.

If the device is in a state where it is waiting for negative
proximity event to turn the screen back on (as with phone calls),
this CL makes it so that power button will also turn the screen
back on, even if proximity is still positive.

Test: make phone call, cover prox, end call. Previously power button
      had no effect in this state, now it turns the screen back on.
Bug: 190459207
Change-Id: I3ce33fe81e5ee0c0652517a8ce46632519ba73c6
(cherry picked from commit 325cf315)
parent 64d22187
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -2122,7 +2122,6 @@ final class DisplayPowerController implements AutomaticBrightnessController.Call

    private void ignoreProximitySensorUntilChangedInternal() {
        if (!mIgnoreProximityUntilChanged
                && mPowerRequest.useProximitySensor
                && mProximity == PROXIMITY_POSITIVE) {
            // Only ignore if it is still reporting positive (near)
            mIgnoreProximityUntilChanged = true;
+10 −1
Original line number Diff line number Diff line
@@ -532,6 +532,11 @@ public final class PowerManagerService extends SystemService
    // True if the proximity sensor reads a positive result.
    private boolean mProximityPositive;

    // Indicates that we have already intercepted the power key to temporarily ignore the proximity
    // wake lock and turn the screen back on. This should get reset when prox reads 'far' again
    // (when {@link #mProximityPositive} is set to false).
    private boolean mInterceptedPowerKeyForProximity;

    // Screen brightness setting limits.
    public final float mScreenBrightnessMinimum;
    public final float mScreenBrightnessMaximum;
@@ -3313,6 +3318,7 @@ public final class PowerManagerService extends SystemService
        public void onProximityNegative() {
            synchronized (mLock) {
                mProximityPositive = false;
                mInterceptedPowerKeyForProximity = false;
                mDirty |= DIRTY_PROXIMITY_POSITIVE;
                userActivityNoUpdateLocked(Display.DEFAULT_DISPLAY_GROUP, mClock.uptimeMillis(),
                        PowerManager.USER_ACTIVITY_EVENT_OTHER, 0, Process.SYSTEM_UID);
@@ -4153,6 +4159,8 @@ public final class PowerManagerService extends SystemService
            }
            pw.println();
            pw.println("  mRequestWaitForNegativeProximity=" + mRequestWaitForNegativeProximity);
            pw.println("  mInterceptedPowerKeyForProximity="
                    + mInterceptedPowerKeyForProximity);
            pw.println("  mSandmanScheduled=" + mSandmanScheduled);
            pw.println("  mBatteryLevelLow=" + mBatteryLevelLow);
            pw.println("  mLightDeviceIdleMode=" + mLightDeviceIdleMode);
@@ -5984,8 +5992,9 @@ public final class PowerManagerService extends SystemService
            final DisplayPowerRequest displayPowerRequest =
                    mDisplayGroupPowerStateMapper.getPowerRequestLocked(
                            Display.DEFAULT_DISPLAY_GROUP);
            if (displayPowerRequest.useProximitySensor && mProximityPositive) {
            if (mProximityPositive && !mInterceptedPowerKeyForProximity) {
                mDisplayManagerInternal.ignoreProximitySensorUntilChanged();
                mInterceptedPowerKeyForProximity = true;
                return true;
            }
        }