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>
This commit is contained in:
Mike Lockwood
2009-10-21 16:03:18 -04:00
parent f702f1f33f
commit f003c0c15d

View File

@@ -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());