summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2009-11-08 18:33:03 -0500
committerMike Lockwood <lockwood@android.com>2009-11-08 18:43:12 -0500
commit497087e33d422d576d007f72fb970613d008f1cf (patch)
treecca8c0e983f47a903d76525f931a748ae3f83ba4 /services
parent3f857b78fc68e5d700139bdc6078c5333b62a9bc (diff)
downloadframeworks_base-497087e33d422d576d007f72fb970613d008f1cf.zip
frameworks_base-497087e33d422d576d007f72fb970613d008f1cf.tar.gz
frameworks_base-497087e33d422d576d007f72fb970613d008f1cf.tar.bz2
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>
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/PowerManagerService.java13
1 files changed, 12 insertions, 1 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index af93d36..596325c 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -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) {