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

Commit 3b8a186b authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Remove nested ensureActivitiesVisible from keyguardGoingAway" into main

parents 6e92ac1a 7d4624d4
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -3789,10 +3789,9 @@ public class ActivityTaskManagerService extends IActivityTaskManager.Stub {
                }

                final boolean wasNoResumed = mTopApp == null || !mTopApp.hasResumedActivity();
                for (int i = mRootWindowContainer.getChildCount() - 1; i >= 0; i--) {
                    final DisplayContent dc = mRootWindowContainer.getChildAt(i);
                    mKeyguardController.keyguardGoingAway(dc.mDisplayId, flags);
                }

                mKeyguardController.keyguardGoingAway(flags);

                final boolean foundResumed = wasNoResumed
                        && mTopApp != null && mTopApp.hasResumedActivity();
                if (isPowerModePreApplied && !foundResumed) {
+20 −9
Original line number Diff line number Diff line
@@ -298,21 +298,34 @@ class KeyguardController {
     * @param flags See {@link WindowManagerPolicy#KEYGUARD_GOING_AWAY_FLAG_TO_SHADE}
     *              etc.
     */
    void keyguardGoingAway(int displayId, int flags) {
        final KeyguardDisplayState state = getDisplayState(displayId);
        if (!state.mKeyguardShowing || state.mKeyguardGoingAway) {
    void keyguardGoingAway(int flags) {
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "keyguardGoingAway");

        boolean goingAwayChanged = false;
        for (int i = mRootWindowContainer.getChildCount() - 1; i >= 0; i--) {
            final DisplayContent dc = mRootWindowContainer.getChildAt(i);
            if (!dc.isRemoving() && !dc.isRemoved()) {
                final var state = getDisplayState(dc.mDisplayId);
                if (state.mKeyguardShowing && !state.mKeyguardGoingAway) {
                    goingAwayChanged = true;
                    state.mKeyguardGoingAway = true;
                    state.writeEventLog("keyguardGoingAway");
                    scheduleGoingAwayTimeout(dc.mDisplayId);
                }
            }
        }
        if (!goingAwayChanged) {
            Trace.traceEnd(TRACE_TAG_WINDOW_MANAGER);
            return;
        }
        Trace.traceBegin(TRACE_TAG_WINDOW_MANAGER, "keyguardGoingAway");

        mService.deferWindowLayout();
        state.mKeyguardGoingAway = true;
        final ActionChain chain = mService.mChainTracker.startTransit("kgGoAway");
        try {
            state.writeEventLog("keyguardGoingAway");
            final int transitFlags = convertTransitFlags(flags);
            if (ENABLE_NEW_KEYGUARD_SHELL_TRANSITIONS) {
                final Transition transition = chain.getTransition();
                if (transition != null && displayId == DEFAULT_DISPLAY) {
                if (transition != null) {
                    transition.addFlag(TRANSIT_FLAG_KEYGUARD_GOING_AWAY);
                }
            } else {
@@ -330,8 +343,6 @@ class KeyguardController {
            mRootWindowContainer.ensureActivitiesVisible();
            mRootWindowContainer.addStartingWindowsForVisibleActivities();
            mWindowManager.executeAppTransition();

            scheduleGoingAwayTimeout(displayId);
        } finally {
            mService.continueWindowLayout();
            mService.mChainTracker.endPartial();
+3 −3
Original line number Diff line number Diff line
@@ -912,7 +912,7 @@ public class DisplayContentTests extends WindowTestsBase {
        assertEquals("Visible keyguard must influence device orientation",
                SCREEN_ORIENTATION_PORTRAIT, mDisplayContent.getOrientation());

        mAtm.mKeyguardController.keyguardGoingAway(appWin.getDisplayId(), 0 /* flags */);
        mAtm.mKeyguardController.keyguardGoingAway(0 /* flags */);
        assertEquals("Keyguard that is going away must not influence device orientation",
                SCREEN_ORIENTATION_LANDSCAPE, mDisplayContent.getOrientation());
    }
@@ -2557,7 +2557,7 @@ public class DisplayContentTests extends WindowTestsBase {
        transitions.flush();

        // Start unlocking from AOD.
        keyguard.keyguardGoingAway(displayId, 0x0 /* flags */);
        keyguard.keyguardGoingAway(0x0 /* flags */);
        assertTrue(keyguardGoingAway.getAsBoolean());
        assertTrue(appVisible.getAsBoolean());

@@ -2620,7 +2620,7 @@ public class DisplayContentTests extends WindowTestsBase {
        transitions.flush();

        // Start unlocking from AOD.
        keyguard.keyguardGoingAway(displayId, 0x0 /* flags */);
        keyguard.keyguardGoingAway(0x0 /* flags */);
        assertTrue(keyguardGoingAway.getAsBoolean());
        assertTrue(appVisible.getAsBoolean());