Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c4c8baae authored by Bryce Lee's avatar Bryce Lee
Browse files

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
parent 89eceea5
Loading
Loading
Loading
Loading
+8 −1
Original line number Diff line number Diff line
@@ -1657,9 +1657,16 @@ class WindowStateAnimator {
                    if (mWin.mAppToken != null) {
                        mWin.mAppToken.setCanTurnScreenOn(false);
                    }

                    // 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()) {
                w.mToken.hasVisible = true;
            }