Ignore the light sensor if the screen is turning off.

Fixes bug b/2202165.  The light sensor was interfering with the screen off animation.

Change-Id: I1bc566a164af689b60b066e6cb3dcbf7959bc50a
Signed-off-by: Mike Lockwood <lockwood@android.com>
This commit is contained in:
Mike Lockwood
2009-11-08 18:33:03 -05:00
parent 3f857b78fc
commit 497087e33d

View File

@@ -1440,6 +1440,8 @@ class PowerManagerService extends IPowerManager.Stub
sendNotificationLocked(true, -1);
}
} else {
// cancel light sensor task
mHandler.removeCallbacks(mAutoBrightnessTask);
mScreenOffTime = SystemClock.elapsedRealtime();
long identity = Binder.clearCallingIdentity();
try {
@@ -1803,6 +1805,10 @@ class PowerManagerService extends IPowerManager.Stub
}
}
private boolean isScreenTurningOffLocked() {
return (mScreenBrightness.animating && mScreenBrightness.targetValue == 0);
}
private void forceUserActivityLocked() {
// cancel animation so userActivity will succeed
mScreenBrightness.animating = false;
@@ -1863,7 +1869,7 @@ class PowerManagerService extends IPowerManager.Stub
+ " force=" + force);
}
// ignore user activity if we are in the process of turning off the screen
if (mScreenBrightness.animating && mScreenBrightness.targetValue == 0) {
if (isScreenTurningOffLocked()) {
Log.d(TAG, "ignoring user activity while turning off screen");
return;
}
@@ -2441,6 +2447,11 @@ class PowerManagerService extends IPowerManager.Stub
SensorEventListener mLightListener = new SensorEventListener() {
public void onSensorChanged(SensorEvent event) {
synchronized (mLocks) {
// ignore light sensor while screen is turning off
if (isScreenTurningOffLocked()) {
return;
}
int value = (int)event.values[0];
long milliseconds = event.timestamp / 1000000;
if (mDebugLightSensor) {