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

Commit eb1996b0 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Do not request WAKE transition when device wake up." into tm-qpr-dev...

Merge "Do not request WAKE transition when device wake up." into tm-qpr-dev am: 4d01e66b am: fd7d2446

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/20553347



Change-Id: Ic15f4026f2a0b283a80f457dbfc8df3c4b577b9b
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents f2d551c7 fd7d2446
Loading
Loading
Loading
Loading
+1 −8
Original line number Diff line number Diff line
@@ -57,7 +57,6 @@ import static android.view.WindowManager.LayoutParams.TYPE_TOAST;
import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION;
import static android.view.WindowManager.LayoutParams.TYPE_VOICE_INTERACTION_STARTING;
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
import static android.view.WindowManager.TRANSIT_WAKE;
import static android.view.WindowManagerGlobal.ADD_OKAY;
import static android.view.WindowManagerPolicyConstants.ACTION_HDMI_PLUGGED;
import static android.view.WindowManagerPolicyConstants.ALT_BAR_BOTTOM;
@@ -789,13 +788,7 @@ public class DisplayPolicy {
            if (!mDisplayContent.isDefaultDisplay) {
                return;
            }
            if (mAwake && mDisplayContent.mTransitionController.isShellTransitionsEnabled()
                    && !mDisplayContent.mTransitionController.isCollecting()) {
                // Start a transition for waking. This is needed for showWhenLocked activities.
                mDisplayContent.mTransitionController.requestTransitionIfNeeded(TRANSIT_WAKE,
                        0 /* flags */, null /* trigger */, mDisplayContent);
            }
            mService.mAtmService.mKeyguardController.updateDeferWakeTransition(
            mService.mAtmService.mKeyguardController.updateDeferTransitionForAod(
                    mAwake /* waiting */);
        }
    }
+15 −6
Original line number Diff line number Diff line
@@ -176,7 +176,7 @@ class KeyguardController {
        final boolean keyguardChanged = (keyguardShowing != state.mKeyguardShowing)
                || (state.mKeyguardGoingAway && keyguardShowing && !aodRemoved);
        if (aodRemoved) {
            updateDeferWakeTransition(false /* waiting */);
            updateDeferTransitionForAod(false /* waiting */);
        }
        if (!keyguardChanged && !aodChanged) {
            setWakeTransitionReady();
@@ -533,24 +533,25 @@ class KeyguardController {

    private final Runnable mResetWaitTransition = () -> {
        synchronized (mWindowManager.mGlobalLock) {
            updateDeferWakeTransition(false /* waiting */);
            updateDeferTransitionForAod(false /* waiting */);
        }
    };

    void updateDeferWakeTransition(boolean waiting) {
    // Defer transition until AOD dismissed.
    void updateDeferTransitionForAod(boolean waiting) {
        if (waiting == mWaitingForWakeTransition) {
            return;
        }
        if (!mWindowManager.mAtmService.getTransitionController().isShellTransitionsEnabled()) {
        if (!mService.getTransitionController().isCollecting()) {
            return;
        }
        // if aod is showing, defer the wake transition until aod state changed.
        // if AOD is showing, defer the wake transition until AOD state changed.
        if (waiting && isAodShowing(DEFAULT_DISPLAY)) {
            mWaitingForWakeTransition = true;
            mWindowManager.mAtmService.getTransitionController().deferTransitionReady();
            mWindowManager.mH.postDelayed(mResetWaitTransition, DEFER_WAKE_TRANSITION_TIMEOUT_MS);
        } else if (!waiting) {
            // dismiss the deferring if the aod state change or cancel awake.
            // dismiss the deferring if the AOD state change or cancel awake.
            mWaitingForWakeTransition = false;
            mWindowManager.mAtmService.getTransitionController().continueTransitionReady();
            mWindowManager.mH.removeCallbacks(mResetWaitTransition);
@@ -657,10 +658,18 @@ class KeyguardController {
                mTopTurnScreenOnActivity.setCurrentLaunchCanTurnScreenOn(false);
            }

            boolean hasChange = false;
            if (lastOccluded != mOccluded) {
                controller.handleOccludedChanged(mDisplayId, mTopOccludesActivity);
                hasChange = true;
            } else if (!lastKeyguardGoingAway && mKeyguardGoingAway) {
                controller.handleKeyguardGoingAwayChanged(display);
                hasChange = true;
            }
            // Collect the participates for shell transition, so that transition won't happen too
            // early since the transition was set ready.
            if (hasChange && top != null && (mOccluded || mKeyguardGoingAway)) {
                display.mTransitionController.collect(top);
            }
        }