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

Commit 86f30c22 authored by Evan Rosky's avatar Evan Rosky Committed by Automerger Merge Worker
Browse files

Merge "Only set ready early in AR.finish if it is a self-contained op" into udc-dev am: e29879cb

parents 17d0a47f e29879cb
Loading
Loading
Loading
Loading
+12 −2
Original line number Original line Diff line number Diff line
@@ -3522,6 +3522,7 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A


            final boolean endTask = task.getTopNonFinishingActivity() == null
            final boolean endTask = task.getTopNonFinishingActivity() == null
                    && !task.isClearingToReuseTask();
                    && !task.isClearingToReuseTask();
            final Transition newTransition =
                    mTransitionController.requestCloseTransitionIfNeeded(endTask ? task : this);
                    mTransitionController.requestCloseTransitionIfNeeded(endTask ? task : this);
            if (isState(RESUMED)) {
            if (isState(RESUMED)) {
                if (endTask) {
                if (endTask) {
@@ -3576,8 +3577,17 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
            } else if (!isState(PAUSING)) {
            } else if (!isState(PAUSING)) {
                if (mVisibleRequested) {
                if (mVisibleRequested) {
                    // Prepare and execute close transition.
                    // Prepare and execute close transition.
                    if (mTransitionController.isShellTransitionsEnabled()) {
                        setVisibility(false);
                        if (newTransition != null) {
                            // This is a transition specifically for this close operation, so set
                            // ready now.
                            newTransition.setReady(mDisplayContent, true);
                        }
                    } else {
                        prepareActivityHideTransitionAnimation();
                        prepareActivityHideTransitionAnimation();
                    }
                    }
                }


                final boolean removedActivity = completeFinishing("finishIfPossible") == null;
                final boolean removedActivity = completeFinishing("finishIfPossible") == null;
                // Performance optimization - only invoke OOM adjustment if the state changed to
                // Performance optimization - only invoke OOM adjustment if the state changed to
+9 −4
Original line number Original line Diff line number Diff line
@@ -577,12 +577,16 @@ class TransitionController {
        return transition;
        return transition;
    }
    }


    /** Requests transition for a window container which will be removed or invisible. */
    /**
    void requestCloseTransitionIfNeeded(@NonNull WindowContainer<?> wc) {
     * Requests transition for a window container which will be removed or invisible.
        if (mTransitionPlayer == null) return;
     * @return the new transition if it was created for this request, `null` otherwise.
     */
    Transition requestCloseTransitionIfNeeded(@NonNull WindowContainer<?> wc) {
        if (mTransitionPlayer == null) return null;
        Transition out = null;
        if (wc.isVisibleRequested()) {
        if (wc.isVisibleRequested()) {
            if (!isCollecting()) {
            if (!isCollecting()) {
                requestStartTransition(createTransition(TRANSIT_CLOSE, 0 /* flags */),
                out = requestStartTransition(createTransition(TRANSIT_CLOSE, 0 /* flags */),
                        wc.asTask(), null /* remoteTransition */, null /* displayChange */);
                        wc.asTask(), null /* remoteTransition */, null /* displayChange */);
            }
            }
            collectExistenceChange(wc);
            collectExistenceChange(wc);
@@ -591,6 +595,7 @@ class TransitionController {
            // collecting, this should be a member just in case.
            // collecting, this should be a member just in case.
            collect(wc);
            collect(wc);
        }
        }
        return out;
    }
    }


    /** @see Transition#collect */
    /** @see Transition#collect */