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

Commit 3fee5c6b authored by Jeff Brown's avatar Jeff Brown Committed by Android (Google) Code Review
Browse files

Merge "Fix some proximity sensor bugs." into jb-mr1-dev

parents 8756bd1d 6307a150
Loading
Loading
Loading
Loading
+25 −14
Original line number Diff line number Diff line
@@ -479,11 +479,13 @@ final class DisplayPowerController {
            if (mPowerRequest == null) {
                mPowerRequest = new DisplayPowerRequest(mPendingRequestLocked);
                mWaitingForNegativeProximity = mPendingWaitForNegativeProximityLocked;
                mPendingWaitForNegativeProximityLocked = false;
                mPendingRequestChangedLocked = false;
                mustInitialize = true;
            } else if (mPendingRequestChangedLocked) {
                mPowerRequest.copyFrom(mPendingRequestLocked);
                mWaitingForNegativeProximity |= mPendingWaitForNegativeProximityLocked;
                mPendingWaitForNegativeProximityLocked = false;
                mPendingRequestChangedLocked = false;
                mDisplayReadyLocked = false;
            }
@@ -496,24 +498,33 @@ final class DisplayPowerController {
            initialize();
        }

        // Clear a request to wait for negative proximity if needed.
        if (mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_OFF
                || mProximity == PROXIMITY_NEGATIVE
                || mProximitySensor == null) {
            mWaitingForNegativeProximity = false;
        }

        // Turn on the proximity sensor if needed.
        // Apply the proximity sensor.
        if (mProximitySensor != null) {
            setProximitySensorEnabled(mPowerRequest.useProximitySensor
                    || mWaitingForNegativeProximity);
            if (mProximitySensorEnabled && mProximity == PROXIMITY_POSITIVE) {
            if (mPowerRequest.useProximitySensor
                    && mPowerRequest.screenState != DisplayPowerRequest.SCREEN_STATE_OFF) {
                setProximitySensorEnabled(true);
                if (!mScreenOffBecauseOfProximity
                        && mProximity == PROXIMITY_POSITIVE) {
                    mScreenOffBecauseOfProximity = true;
                    setScreenOn(false);
            } else if (mScreenOffBecauseOfProximity) {
                }
            } else if (mWaitingForNegativeProximity
                    && mScreenOffBecauseOfProximity
                    && mProximity == PROXIMITY_POSITIVE
                    && mPowerRequest.screenState != DisplayPowerRequest.SCREEN_STATE_OFF) {
                setProximitySensorEnabled(true);
            } else {
                setProximitySensorEnabled(false);
                mWaitingForNegativeProximity = false;
            }
            if (mScreenOffBecauseOfProximity
                    && mProximity != PROXIMITY_POSITIVE) {
                mScreenOffBecauseOfProximity = false;
                setScreenOn(true);
                sendOnProximityNegative();
            }
        } else {
            mWaitingForNegativeProximity = false;
        }

        // Turn on the light sensor if needed.