summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorMike Lockwood <lockwood@android.com>2009-10-21 16:03:18 -0400
committerMike Lockwood <lockwood@android.com>2009-10-21 23:06:56 -0400
commitf003c0c15d28fbd70f00aa8a4529cc081a21e0f0 (patch)
tree24371e088cdbb2a4e878374db1431a254c208c7a /services
parentf702f1f33fb5490854579a1f5ce61c70ea7fd768 (diff)
downloadframeworks_base-f003c0c15d28fbd70f00aa8a4529cc081a21e0f0.zip
frameworks_base-f003c0c15d28fbd70f00aa8a4529cc081a21e0f0.tar.gz
frameworks_base-f003c0c15d28fbd70f00aa8a4529cc081a21e0f0.tar.bz2
PowerManagerService: Ignore user activity while the screen is animating off.
Fixes bug b/2202165 (Often I when pressing power to turn off I get the lock screen) Change-Id: I53f8350203d57fbb5f143edc44985879caadd78f Signed-off-by: Mike Lockwood <lockwood@android.com>
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/PowerManagerService.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/services/java/com/android/server/PowerManagerService.java b/services/java/com/android/server/PowerManagerService.java
index 9b54a70..29a5ba8 100644
--- a/services/java/com/android/server/PowerManagerService.java
+++ b/services/java/com/android/server/PowerManagerService.java
@@ -156,6 +156,7 @@ class PowerManagerService extends IPowerManager.Stub
private int mProximityCount = 0;
private int mPowerState;
private boolean mOffBecauseOfUser;
+ private boolean mAnimatingScreenOff;
private int mUserState;
private boolean mKeyboardVisible = false;
private boolean mUserActivityAllowed = true;
@@ -1225,6 +1226,7 @@ class PowerManagerService extends IPowerManager.Stub
Log.d(TAG,
"preventScreenOn: turning on after a prior preventScreenOn(true)!");
}
+ mAnimatingScreenOff = false;
int err = setScreenStateLocked(true);
if (err != 0) {
Log.w(TAG, "preventScreenOn: error from setScreenStateLocked(): " + err);
@@ -1386,6 +1388,7 @@ class PowerManagerService extends IPowerManager.Stub
reallyTurnScreenOn = false;
}
if (reallyTurnScreenOn) {
+ mAnimatingScreenOff = false;
err = setScreenStateLocked(true);
long identity = Binder.clearCallingIdentity();
try {
@@ -1427,6 +1430,7 @@ class PowerManagerService extends IPowerManager.Stub
if (!mScreenBrightness.animating) {
err = screenOffFinishedAnimatingLocked(becauseOfUser);
} else {
+ mAnimatingScreenOff = true;
mOffBecauseOfUser = becauseOfUser;
err = 0;
mLastTouchDown = 0;
@@ -1444,6 +1448,7 @@ class PowerManagerService extends IPowerManager.Stub
mTotalTouchDownTime, mTouchCycles);
mLastTouchDown = 0;
int err = setScreenStateLocked(false);
+ mAnimatingScreenOff = false;
if (mScreenOnStartTime != 0) {
mScreenOnTime += SystemClock.elapsedRealtime() - mScreenOnStartTime;
mScreenOnStartTime = 0;
@@ -1816,7 +1821,9 @@ class PowerManagerService extends IPowerManager.Stub
return;
}
-
+ if (mAnimatingScreenOff) {
+ return;
+ }
if (false) {
if (((mPokey & POKE_LOCK_IGNORE_CHEEK_EVENTS) != 0)) {
Log.d(TAG, "userActivity !!!");//, new RuntimeException());