diff options
| author | Mike Lockwood <lockwood@android.com> | 2009-10-28 11:40:47 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2009-10-28 11:40:47 -0700 |
| commit | 7c64d4486ad8704f0b63474e2da0dd89147771ad (patch) | |
| tree | 17bee25ba08aae39ceb30044582123ec3c6f1bdb /services | |
| parent | 4c071f0d69ac0e3eaf386797faeb52d63de30806 (diff) | |
| parent | 8061f64f6246116381131fc7951b6d88be37161a (diff) | |
| download | frameworks_base-7c64d4486ad8704f0b63474e2da0dd89147771ad.zip frameworks_base-7c64d4486ad8704f0b63474e2da0dd89147771ad.tar.gz frameworks_base-7c64d4486ad8704f0b63474e2da0dd89147771ad.tar.bz2 | |
am 8061f64f: Merge change Ib0d3d9d0 into eclair
Merge commit '8061f64f6246116381131fc7951b6d88be37161a' into eclair-mr2
* commit '8061f64f6246116381131fc7951b6d88be37161a':
PowerManagerService: Clear Binder calling identity around calls to Sensor Manager.
Diffstat (limited to 'services')
| -rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 36 |
1 files changed, 27 insertions, 9 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index aad576f..f3a91e7 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -2273,15 +2273,27 @@ class PowerManagerService extends IPowerManager.Stub if (mSpew) { Log.d(TAG, "enableProximityLockLocked"); } - mSensorManager.registerListener(mProximityListener, mProximitySensor, - SensorManager.SENSOR_DELAY_NORMAL); + // clear calling identity so sensor manager battery stats are accurate + long identity = Binder.clearCallingIdentity(); + try { + mSensorManager.registerListener(mProximityListener, mProximitySensor, + SensorManager.SENSOR_DELAY_NORMAL); + } finally { + Binder.restoreCallingIdentity(identity); + } } private void disableProximityLockLocked() { if (mSpew) { Log.d(TAG, "disableProximityLockLocked"); } - mSensorManager.unregisterListener(mProximityListener); + // clear calling identity so sensor manager battery stats are accurate + long identity = Binder.clearCallingIdentity(); + try { + mSensorManager.unregisterListener(mProximityListener); + } finally { + Binder.restoreCallingIdentity(identity); + } synchronized (mLocks) { if (mProximitySensorActive) { mProximitySensorActive = false; @@ -2296,12 +2308,18 @@ class PowerManagerService extends IPowerManager.Stub } if (mSensorManager != null && mLightSensorEnabled != enable) { mLightSensorEnabled = enable; - if (enable) { - mSensorManager.registerListener(mLightListener, mLightSensor, - SensorManager.SENSOR_DELAY_NORMAL); - } else { - mSensorManager.unregisterListener(mLightListener); - mHandler.removeCallbacks(mAutoBrightnessTask); + // clear calling identity so sensor manager battery stats are accurate + long identity = Binder.clearCallingIdentity(); + try { + if (enable) { + mSensorManager.registerListener(mLightListener, mLightSensor, + SensorManager.SENSOR_DELAY_NORMAL); + } else { + mSensorManager.unregisterListener(mLightListener); + mHandler.removeCallbacks(mAutoBrightnessTask); + } + } finally { + Binder.restoreCallingIdentity(identity); } } } |
