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

Commit 012697e5 authored by Chris Li's avatar Chris Li
Browse files

Do not call setReady(false) when finishing

Before, when there is a collecting transition, finishing activity/task
will unset the ready state. It can cause issue if the existing
transition has already in ready, because there may not be other setReady
call for finishing.

Bug: 183993924
Test: manually on acloud with resolve activity for two launchers
Change-Id: Ibafaf0b9bd7842a30eedbeb02271ab6f96c838ff
parent cc3b202f
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -3453,8 +3453,14 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
        if (stopped) {
            abortAndClearOptionsAnimation();
        }
        if (mAtmService.getTransitionController().isCollecting()) {
            // We don't want the finishing to change the transition ready state since there will not
            // be corresponding setReady for finishing.
            mAtmService.getTransitionController().collectExistenceChange(this);
        } else {
            mAtmService.getTransitionController().requestTransitionIfNeeded(TRANSIT_CLOSE, this);
        }
    }

    /**
     * This method is to only be called from the client via binder when the activity is destroyed
+7 −1
Original line number Diff line number Diff line
@@ -1551,7 +1551,13 @@ public class ActivityTaskSupervisor implements RecentTasks.Callbacks {
            return;
        }
        if (task.isVisible()) {
            if (mService.getTransitionController().isCollecting()) {
                // We don't want the finishing to change the transition ready state since there will
                // not be corresponding setReady for finishing.
                mService.getTransitionController().collectExistenceChange(task);
            } else {
                mService.getTransitionController().requestTransitionIfNeeded(TRANSIT_CLOSE, task);
            }
        } else {
            // Removing a non-visible task doesn't require a transition, but if there is one
            // collecting, this should be a member just in case.