Merge "Fix some proximity sensor bugs." into jb-mr1-dev
This commit is contained in:
@@ -479,11 +479,13 @@ final class DisplayPowerController {
|
|||||||
if (mPowerRequest == null) {
|
if (mPowerRequest == null) {
|
||||||
mPowerRequest = new DisplayPowerRequest(mPendingRequestLocked);
|
mPowerRequest = new DisplayPowerRequest(mPendingRequestLocked);
|
||||||
mWaitingForNegativeProximity = mPendingWaitForNegativeProximityLocked;
|
mWaitingForNegativeProximity = mPendingWaitForNegativeProximityLocked;
|
||||||
|
mPendingWaitForNegativeProximityLocked = false;
|
||||||
mPendingRequestChangedLocked = false;
|
mPendingRequestChangedLocked = false;
|
||||||
mustInitialize = true;
|
mustInitialize = true;
|
||||||
} else if (mPendingRequestChangedLocked) {
|
} else if (mPendingRequestChangedLocked) {
|
||||||
mPowerRequest.copyFrom(mPendingRequestLocked);
|
mPowerRequest.copyFrom(mPendingRequestLocked);
|
||||||
mWaitingForNegativeProximity |= mPendingWaitForNegativeProximityLocked;
|
mWaitingForNegativeProximity |= mPendingWaitForNegativeProximityLocked;
|
||||||
|
mPendingWaitForNegativeProximityLocked = false;
|
||||||
mPendingRequestChangedLocked = false;
|
mPendingRequestChangedLocked = false;
|
||||||
mDisplayReadyLocked = false;
|
mDisplayReadyLocked = false;
|
||||||
}
|
}
|
||||||
@@ -496,24 +498,33 @@ final class DisplayPowerController {
|
|||||||
initialize();
|
initialize();
|
||||||
}
|
}
|
||||||
|
|
||||||
// Clear a request to wait for negative proximity if needed.
|
// Apply the proximity sensor.
|
||||||
if (mPowerRequest.screenState == DisplayPowerRequest.SCREEN_STATE_OFF
|
|
||||||
|| mProximity == PROXIMITY_NEGATIVE
|
|
||||||
|| mProximitySensor == null) {
|
|
||||||
mWaitingForNegativeProximity = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Turn on the proximity sensor if needed.
|
|
||||||
if (mProximitySensor != null) {
|
if (mProximitySensor != null) {
|
||||||
setProximitySensorEnabled(mPowerRequest.useProximitySensor
|
if (mPowerRequest.useProximitySensor
|
||||||
|| mWaitingForNegativeProximity);
|
&& mPowerRequest.screenState != DisplayPowerRequest.SCREEN_STATE_OFF) {
|
||||||
if (mProximitySensorEnabled && mProximity == PROXIMITY_POSITIVE) {
|
setProximitySensorEnabled(true);
|
||||||
mScreenOffBecauseOfProximity = true;
|
if (!mScreenOffBecauseOfProximity
|
||||||
setScreenOn(false);
|
&& mProximity == PROXIMITY_POSITIVE) {
|
||||||
} else if (mScreenOffBecauseOfProximity) {
|
mScreenOffBecauseOfProximity = true;
|
||||||
|
setScreenOn(false);
|
||||||
|
}
|
||||||
|
} 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;
|
mScreenOffBecauseOfProximity = false;
|
||||||
|
setScreenOn(true);
|
||||||
sendOnProximityNegative();
|
sendOnProximityNegative();
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
mWaitingForNegativeProximity = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Turn on the light sensor if needed.
|
// Turn on the light sensor if needed.
|
||||||
|
|||||||
Reference in New Issue
Block a user