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

Commit 039648c8 authored by Riddle Hsu's avatar Riddle Hsu Committed by Automerger Merge Worker
Browse files

Merge "Request transition when disposing TF organizer" into udc-qpr-dev am:...

Merge "Request transition when disposing TF organizer" into udc-qpr-dev am: 5dbb7ebf am: a3907dac

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



Change-Id: I917442577d2e810349083dc1109a843947f31381
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 2dec1eb5 a3907dac
Loading
Loading
Loading
Loading
+18 −1
Original line number Diff line number Diff line
@@ -184,14 +184,31 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr
        }

        void dispose() {
            boolean wasVisible = false;
            for (int i = mOrganizedTaskFragments.size() - 1; i >= 0; i--) {
                final TaskFragment taskFragment = mOrganizedTaskFragments.get(i);
                if (taskFragment.isVisibleRequested()) {
                    wasVisible = true;
                }
                // Cleanup the TaskFragmentOrganizer from all TaskFragments it organized before
                // removing the windows to prevent it from adding any additional TaskFragment
                // pending event.
                final TaskFragment taskFragment = mOrganizedTaskFragments.get(i);
                taskFragment.onTaskFragmentOrganizerRemoved();
            }

            final TransitionController transitionController = mAtmService.getTransitionController();
            if (wasVisible && transitionController.isShellTransitionsEnabled()
                    && !transitionController.isCollecting()) {
                final Task task = mOrganizedTaskFragments.get(0).getTask();
                final boolean containsNonEmbeddedActivity =
                        task != null && task.getActivity(a -> !a.isEmbedded()) != null;
                transitionController.requestStartTransition(
                        transitionController.createTransition(WindowManager.TRANSIT_CLOSE),
                        // The task will be removed if all its activities are embedded, then the
                        // task is the trigger.
                        containsNonEmbeddedActivity ? null : task,
                        null /* remoteTransition */, null /* displayChange */);
            }
            // Defer to avoid unnecessary layout when there are multiple TaskFragments removal.
            mAtmService.deferWindowLayout();
            try {