Do not process set WindowAnimator param when screen is already on.

Doing so can lead to the param be processed during onPause,
potentially causing the device erroneously waking up.

Change-Id: Id0f0bc74873e6e41bd2b10dc423a435ca050947f
Fixes: 65412431
Bug: 65385210
Test: cts/hostsidetests/services/activityandwindowmanager/util/run-test CtsServicesHostTestCases android.server.cts.ActivityManagerActivityVisibilityTests#testTurnScreenOnActivity_withRelayout
This commit is contained in:
Bryce Lee
2017-09-06 14:55:48 -07:00
parent 89eceea5ca
commit c4c8baae78

View File

@@ -1657,7 +1657,14 @@ class WindowStateAnimator {
if (mWin.mAppToken != null) {
mWin.mAppToken.setCanTurnScreenOn(false);
}
mAnimator.mBulkUpdateParams |= SET_TURN_ON_SCREEN;
// We do not add {@code SET_TURN_ON_SCREEN} when the screen is already
// interactive as the value may persist until the next animation, which could
// potentially occurring while turning off the screen. This would lead to the
// screen incorrectly turning back on.
if (!mService.mPowerManager.isInteractive()) {
mAnimator.mBulkUpdateParams |= SET_TURN_ON_SCREEN;
}
}
}
if (hasSurface()) {