diff options
author | Mike Lockwood <lockwood@android.com> | 2009-11-08 18:33:03 -0500 |
---|---|---|
committer | Mike Lockwood <lockwood@android.com> | 2009-11-08 18:43:12 -0500 |
commit | 497087e33d422d576d007f72fb970613d008f1cf (patch) | |
tree | cca8c0e983f47a903d76525f931a748ae3f83ba4 /services | |
parent | 3f857b78fc68e5d700139bdc6078c5333b62a9bc (diff) | |
download | frameworks_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.java | 13 |
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) { |