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

Commit 8d985642 authored by Evan Rosky's avatar Evan Rosky Committed by Android (Google) Code Review
Browse files

Merge changes I6cbd9152,I47824930 into main

* changes:
  Add base impl of new ready tracker
  Rename current readytracker as old.
parents 936b28ea fcbcaade
Loading
Loading
Loading
Loading
+18 −0
Original line number Diff line number Diff line
@@ -2365,6 +2365,12 @@
      "group": "WM_DEBUG_RECENTS_ANIMATIONS",
      "at": "com\/android\/server\/wm\/RecentsAnimationController.java"
    },
    "33989965": {
      "message": " Met condition %s for #%d (%d left)",
      "level": "VERBOSE",
      "group": "WM_DEBUG_WINDOW_TRANSITIONS",
      "at": "com\/android\/server\/wm\/Transition.java"
    },
    "34106798": {
      "message": "Content Recording: Display %d state was (%d), is now (%d), so update recording?",
      "level": "VERBOSE",
@@ -4483,6 +4489,12 @@
      "group": "WM_DEBUG_APP_TRANSITIONS",
      "at": "com\/android\/server\/wm\/AppTransitionController.java"
    },
    "2053743391": {
      "message": " Add condition %s for #%d",
      "level": "VERBOSE",
      "group": "WM_DEBUG_WINDOW_TRANSITIONS",
      "at": "com\/android\/server\/wm\/Transition.java"
    },
    "2060978050": {
      "message": "moveWindowTokenToDisplay: Attempted to move token: %s to non-exiting displayId=%d",
      "level": "WARN",
@@ -4543,6 +4555,12 @@
      "group": "WM_DEBUG_IME",
      "at": "com\/android\/server\/wm\/DisplayContent.java"
    },
    "2124732293": {
      "message": "#%d: Met condition: %s",
      "level": "VERBOSE",
      "group": "WM_DEBUG_WINDOW_TRANSITIONS",
      "at": "com\/android\/server\/wm\/Transition.java"
    },
    "2128917433": {
      "message": "onProposedRotationChanged, rotation=%d",
      "level": "VERBOSE",
+10 −0
Original line number Diff line number Diff line
@@ -1622,7 +1622,17 @@ class DisplayContent extends RootDisplayArea implements WindowManagerPolicy.Disp
            return;
        }

        final Transition.ReadyCondition displayConfig = mTransitionController.isCollecting()
                ? new Transition.ReadyCondition("displayConfig", this) : null;
        if (displayConfig != null) {
            mTransitionController.waitFor(displayConfig);
        } else if (mTransitionController.isShellTransitionsEnabled()) {
            Slog.e(TAG, "Display reconfigured outside of a transition: " + this);
        }
        final boolean configUpdated = updateDisplayOverrideConfigurationLocked();
        if (displayConfig != null) {
            displayConfig.meet();
        }
        if (configUpdated) {
            return;
        }
+14 −2
Original line number Diff line number Diff line
@@ -87,6 +87,7 @@ class KeyguardController {
    private RootWindowContainer mRootWindowContainer;
    private final ActivityTaskManagerInternal.SleepTokenAcquirer mSleepTokenAcquirer;
    private boolean mWaitingForWakeTransition;
    private Transition.ReadyCondition mWaitAodHide = null;

    KeyguardController(ActivityTaskManagerService service,
            ActivityTaskSupervisor taskSupervisor) {
@@ -565,9 +566,15 @@ class KeyguardController {

    // Defer transition until AOD dismissed.
    void updateDeferTransitionForAod(boolean waiting) {
        if (mService.getTransitionController().useFullReadyTracking()) {
            if (waiting == (mWaitAodHide != null)) {
                return;
            }
        } else {
            if (waiting == mWaitingForWakeTransition) {
                return;
            }
        }
        if (!mService.getTransitionController().isCollecting()) {
            return;
        }
@@ -575,12 +582,17 @@ class KeyguardController {
        if (waiting && isAodShowing(DEFAULT_DISPLAY)) {
            mWaitingForWakeTransition = true;
            mWindowManager.mAtmService.getTransitionController().deferTransitionReady();
            mWaitAodHide = new Transition.ReadyCondition("AOD hidden");
            mWindowManager.mAtmService.getTransitionController().waitFor(mWaitAodHide);
            mWindowManager.mH.postDelayed(mResetWaitTransition, DEFER_WAKE_TRANSITION_TIMEOUT_MS);
        } else if (!waiting) {
            // dismiss the deferring if the AOD state change or cancel awake.
            mWaitingForWakeTransition = false;
            mWindowManager.mAtmService.getTransitionController().continueTransitionReady();
            mWindowManager.mH.removeCallbacks(mResetWaitTransition);
            final Transition.ReadyCondition waitAodHide = mWaitAodHide;
            mWaitAodHide = null;
            waitAodHide.meet();
        }
    }

+3 −0
Original line number Diff line number Diff line
@@ -2051,6 +2051,8 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
        }

        transitionController.deferTransitionReady();
        Transition.ReadyCondition pipChangesApplied = new Transition.ReadyCondition("movedToPip");
        transitionController.waitFor(pipChangesApplied);
        mService.deferWindowLayout();
        try {
            // This will change the root pinned task's windowing mode to its original mode, ensuring
@@ -2235,6 +2237,7 @@ class RootWindowContainer extends WindowContainer<DisplayContent>
                }
            } finally {
                transitionController.continueTransitionReady();
                pipChangesApplied.meet();
            }
        }

+11 −5
Original line number Diff line number Diff line
@@ -4715,7 +4715,7 @@ class Task extends TaskFragment {
        }
        if (isAttached()) {
            setWindowingMode(WINDOWING_MODE_UNDEFINED);
            moveTaskToBackInner(this);
            moveTaskToBackInner(this, null /* transition */);
        }
        if (top.isAttached()) {
            top.setWindowingMode(WINDOWING_MODE_UNDEFINED);
@@ -5718,24 +5718,27 @@ class Task extends TaskFragment {
                        mTransitionController.requestStartTransition(transition, tr,
                                null /* remoteTransition */, null /* displayChange */);
                        mTransitionController.collect(tr);
                        moveTaskToBackInner(tr);
                        moveTaskToBackInner(tr, transition);
                    });
        } else {
            // Skip the transition for pinned task.
            if (!inPinnedWindowingMode()) {
                mDisplayContent.prepareAppTransition(TRANSIT_TO_BACK);
            }
            moveTaskToBackInner(tr);
            moveTaskToBackInner(tr, null /* transition */);
        }
        return true;
    }

    private boolean moveTaskToBackInner(@NonNull Task task) {
        if (mTransitionController.isShellTransitionsEnabled()) {
    private boolean moveTaskToBackInner(@NonNull Task task, @Nullable Transition transition) {
        final Transition.ReadyCondition movedToBack =
                new Transition.ReadyCondition("moved-to-back", task);
        if (transition != null) {
            // Preventing from update surface position for WindowState if configuration changed,
            // because the position is depends on WindowFrame, so update the position before
            // relayout will only update it to "old" position.
            mAtmService.deferWindowLayout();
            transition.mReadyTracker.add(movedToBack);
        }
        try {
            moveToBack("moveTaskToBackInner", task);
@@ -5752,6 +5755,9 @@ class Task extends TaskFragment {
            if (mTransitionController.isShellTransitionsEnabled()) {
                mAtmService.continueWindowLayout();
            }
            if (transition != null) {
                movedToBack.meet();
            }
        }
        ActivityRecord topActivity = getDisplayArea().topRunningActivity();
        Task topRootTask = topActivity == null ? null : topActivity.getRootTask();
Loading