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

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

Merge "Collect tasks when windowing mode of parent display changes" into...

Merge "Collect tasks when windowing mode of parent display changes" into tm-qpr-dev am: cbef171d am: 90cffa4b

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



Change-Id: I08a422fc024d82412ff2ada90c3c69fdc47e86a6
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 9dd9ac5f 90cffa4b
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -549,7 +549,7 @@ public class DisplayRotation {
            // Go through all tasks and collect them before the rotation
            // TODO(shell-transitions): move collect() to onConfigurationChange once wallpaper
            //       handling is synchronized.
            mDisplayContent.mTransitionController.collectForDisplayChange(mDisplayContent,
            mDisplayContent.mTransitionController.collectForDisplayAreaChange(mDisplayContent,
                    null /* use collecting transition */);
        }
        mService.mAtmService.deferWindowLayout();
+1 −1
Original line number Diff line number Diff line
@@ -101,7 +101,7 @@ public class PhysicalDisplaySwitchTransitionLauncher {

        if (t != null) {
            mDisplayContent.mAtmService.startLaunchPowerMode(POWER_MODE_REASON_CHANGE_DISPLAY);
            mTransitionController.collectForDisplayChange(mDisplayContent, t);
            mTransitionController.collectForDisplayAreaChange(mDisplayContent, t);
            mTransition = t;
        }
    }
+11 −8
Original line number Diff line number Diff line
@@ -460,24 +460,27 @@ class TransitionController {
     * Collects the window containers which need to be synced with the changing display (e.g.
     * rotating) to the given transition or the current collecting transition.
     */
    void collectForDisplayChange(@NonNull DisplayContent dc, @Nullable Transition incoming) {
    void collectForDisplayAreaChange(@NonNull DisplayArea<?> wc, @Nullable Transition incoming) {
        if (incoming == null) incoming = mCollectingTransition;
        if (incoming == null) return;
        final Transition transition = incoming;
        // Collect all visible tasks.
        dc.forAllLeafTasks(task -> {
        wc.forAllLeafTasks(task -> {
            if (task.isVisible()) {
                transition.collect(task);
            }
        }, true /* traverseTopToBottom */);
        // Collect all visible non-app windows which need to be drawn before the animation starts.
        dc.forAllWindows(w -> {
        final DisplayContent dc = wc.asDisplayContent();
        if (dc != null) {
            wc.forAllWindows(w -> {
                if (w.mActivityRecord == null && w.isVisible() && !isCollecting(w.mToken)
                        && dc.shouldSyncRotationChange(w)) {
                    transition.collect(w.mToken);
                }
            }, true /* traverseTopToBottom */);
        }
    }

    /** @see Transition#mStatusBarTransitionDelay */
    void setStatusBarTransitionDelay(long delay) {
+10 −1
Original line number Diff line number Diff line
@@ -397,7 +397,7 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                    // Go through all tasks and collect them before the rotation
                    // TODO(shell-transitions): move collect() to onConfigurationChange once
                    //       wallpaper handling is synchronized.
                    dc.mTransitionController.collectForDisplayChange(dc, transition);
                    dc.mTransitionController.collectForDisplayAreaChange(dc, transition);
                    dc.sendNewConfiguration();
                    effects |= TRANSACT_EFFECTS_LIFECYCLE;
                }
@@ -421,6 +421,15 @@ class WindowOrganizerController extends IWindowOrganizerController.Stub
                    addToSyncSet(syncId, wc);
                }
                if (transition != null) transition.collect(wc);
                final DisplayArea da = wc.asDisplayArea();
                // Only check DisplayArea here as a similar thing is done for DisplayContent above.
                if (da != null && wc.asDisplayContent() == null
                        && entry.getValue().getWindowingMode() != da.getWindowingMode()) {
                    // Go through all tasks and collect them before changing the windowing mode of a
                    // display-level container.
                    // TODO(shell-transitions): handle this more elegantly.
                    da.mTransitionController.collectForDisplayAreaChange(da, transition);
                }

                if ((entry.getValue().getChangeMask()
                        & WindowContainerTransaction.Change.CHANGE_FORCE_NO_PIP) != 0) {