diff options
author | repo sync <lockwood@android.com> | 2009-11-18 20:12:50 -0500 |
---|---|---|
committer | repo sync <lockwood@android.com> | 2009-11-18 20:13:09 -0500 |
commit | d28fcd5bb8e5734a12b83f7cefde759c009e7b6e (patch) | |
tree | 8badeba02d7e7705611736b08287663bc7e6a4ee /services | |
parent | 5b2f5ced25aee6fec49ffd30abeca2801c98fbd8 (diff) | |
parent | efd91d7ce01c7bd538fb0ca66d9f5395352211f8 (diff) | |
download | frameworks_base-d28fcd5bb8e5734a12b83f7cefde759c009e7b6e.zip frameworks_base-d28fcd5bb8e5734a12b83f7cefde759c009e7b6e.tar.gz frameworks_base-d28fcd5bb8e5734a12b83f7cefde759c009e7b6e.tar.bz2 |
resolved conflicts for merge of efd91d7c to eclair-mr2-plus-aosp
Signed-off-by: repo sync <lockwood@android.com>
Diffstat (limited to 'services')
-rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 18 |
1 files changed, 12 insertions, 6 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index d1ff243..c5102e9 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -306,7 +306,7 @@ class PowerManagerService extends IPowerManager.Stub public void release() { if (!mRefCounted || --mCount == 0) { - PowerManagerService.this.releaseWakeLockLocked(mToken, false); + PowerManagerService.this.releaseWakeLockLockedmToken, 0, false); } if (mCount < 0) { throw new RuntimeException("WakeLock under-locked " + mTag); @@ -545,7 +545,7 @@ class PowerManagerService extends IPowerManager.Stub } public void binderDied() { synchronized (mLocks) { - releaseWakeLockLocked(this.binder, true); + releaseWakeLockLocked(this.binder, 0, true); } } final int flags; @@ -690,18 +690,18 @@ class PowerManagerService extends IPowerManager.Stub } } - public void releaseWakeLock(IBinder lock) { + public void releaseWakeLock(IBinder lock, int flags) { int uid = Binder.getCallingUid(); if (uid != Process.myUid()) { mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WAKE_LOCK, null); } synchronized (mLocks) { - releaseWakeLockLocked(lock, false); + releaseWakeLockLocked(lock, flags, false); } } - private void releaseWakeLockLocked(IBinder lock, boolean death) { + private void releaseWakeLockLocked(IBinder lock, int flags, boolean death) { int releaseUid; String releaseName; int releaseType; @@ -733,7 +733,8 @@ class PowerManagerService extends IPowerManager.Stub } else if ((wl.flags & LOCK_MASK) == PowerManager.PROXIMITY_SCREEN_OFF_WAKE_LOCK) { mProximityWakeLockCount--; if (mProximityWakeLockCount == 0) { - if (mProximitySensorActive) { + if (mProximitySensorActive && + ((flags & PowerManager.WAIT_FOR_PROXIMITY_NEGATIVE) != 0)) { // wait for proximity sensor to go negative before disabling sensor if (mDebugProximitySensor) { Log.d(TAG, "waiting for proximity sensor to go negative"); @@ -1909,6 +1910,11 @@ class PowerManagerService extends IPowerManager.Stub Log.d(TAG, "ignoring user activity while turning off screen"); return; } + // Disable proximity sensor if if user presses power key while we are in the + // "waiting for proximity sensor to go negative" state. + if (mProximitySensorActive && mProximityWakeLockCount == 0) { + mProximitySensorActive = false; + } if (mLastEventTime <= time || force) { mLastEventTime = time; if ((mUserActivityAllowed && !mProximitySensorActive) || force) { |