diff options
| author | Joe Onorato <joeo@google.com> | 2010-08-26 15:52:13 -0700 |
|---|---|---|
| committer | Android Git Automerger <android-git-automerger@android.com> | 2010-08-26 15:52:13 -0700 |
| commit | 1578bf109012c3cd20c1b41a9df533df485c8e27 (patch) | |
| tree | 878f189542051fe5beb550077b32064cddbfddb4 /services | |
| parent | 267f4d6a22aade4f63831e166312647212816a3d (diff) | |
| parent | 03b3de0faf7fe6b8e4bfbf828793767ac3e77a37 (diff) | |
| download | frameworks_base-1578bf109012c3cd20c1b41a9df533df485c8e27.zip frameworks_base-1578bf109012c3cd20c1b41a9df533df485c8e27.tar.gz frameworks_base-1578bf109012c3cd20c1b41a9df533df485c8e27.tar.bz2 | |
am 03b3de0f: am 00d1772d: am 797e688b: Continue trying to make the turn off quickly after call feature work.
Merge commit '03b3de0faf7fe6b8e4bfbf828793767ac3e77a37'
* commit '03b3de0faf7fe6b8e4bfbf828793767ac3e77a37':
Continue trying to make the turn off quickly after call feature work.
Diffstat (limited to 'services')
| -rw-r--r-- | services/java/com/android/server/PowerManagerService.java | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java index 4ee89cc..16f3f10 100644 --- a/services/java/com/android/server/PowerManagerService.java +++ b/services/java/com/android/server/PowerManagerService.java @@ -1043,11 +1043,10 @@ class PowerManagerService extends IPowerManager.Stub // If they gave a timeoutOverride it is the number of seconds // to screen-off. Figure out where in the countdown cycle we // should jump to. - private void setTimeoutLocked(long now, long timeoutOverride, int nextState) { + private void setTimeoutLocked(long now, final long originalTimeoutOverride, int nextState) { + long timeoutOverride = originalTimeoutOverride; if (mBootCompleted) { synchronized (mLocks) { - mHandler.removeCallbacks(mTimeoutTask); - mTimeoutTask.nextState = nextState; long when = 0; if (timeoutOverride <= 0) { switch (nextState) @@ -1098,6 +1097,12 @@ class PowerManagerService extends IPowerManager.Stub + " timeoutOverride=" + timeoutOverride + " nextState=" + nextState + " when=" + when); } + + mHandler.removeCallbacks(mTimeoutTask); + mTimeoutTask.nextState = nextState; + mTimeoutTask.remainingTimeoutOverride = timeoutOverride > 0 + ? (originalTimeoutOverride - timeoutOverride) + : -1; mHandler.postAtTime(mTimeoutTask, when); mNextTimeout = when; // for debugging } @@ -1113,6 +1118,7 @@ class PowerManagerService extends IPowerManager.Stub private class TimeoutTask implements Runnable { int nextState; // access should be synchronized on mLocks + long remainingTimeoutOverride; public void run() { synchronized (mLocks) { @@ -1133,11 +1139,11 @@ class PowerManagerService extends IPowerManager.Stub { case SCREEN_BRIGHT: if (mDimDelay >= 0) { - setTimeoutLocked(now, SCREEN_DIM); + setTimeoutLocked(now, remainingTimeoutOverride, SCREEN_DIM); break; } case SCREEN_DIM: - setTimeoutLocked(now, SCREEN_OFF); + setTimeoutLocked(now, remainingTimeoutOverride, SCREEN_OFF); break; } } @@ -2076,6 +2082,7 @@ class PowerManagerService extends IPowerManager.Stub + " mUserState=0x" + Integer.toHexString(mUserState) + " mWakeLockState=0x" + Integer.toHexString(mWakeLockState) + " mProximitySensorActive=" + mProximitySensorActive + + " timeoutOverride=" + timeoutOverride + " force=" + force); } // ignore user activity if we are in the process of turning off the screen |
