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

Commit b0f7a7ab authored by Louis Chang's avatar Louis Chang Committed by Automerger Merge Worker
Browse files

Merge "Avoid adjusting top focused root task while clear task" into rvc-qpr-dev am: 84cc3c88

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

Change-Id: I85730707d56a2119200fa18cae694115cce4ca0f
parents e189373a 84cc3c88
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -2543,7 +2543,9 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A

        final ActivityStack stack = getRootTask();
        final boolean mayAdjustTop = (isState(RESUMED) || stack.mResumedActivity == null)
                && stack.isFocusedStackOnDisplay();
                && stack.isFocusedStackOnDisplay()
                // Do not adjust focus task because the task will be reused to launch new activity.
                && !task.isClearingToReuseTask();
        final boolean shouldAdjustGlobalFocus = mayAdjustTop
                // It must be checked before {@link #makeFinishingLocked} is called, because a stack
                // is not visible if it only contains finishing activities.
+0 −2
Original line number Diff line number Diff line
@@ -2009,8 +2009,6 @@ class ActivityStarter {
            // of history or if it is finished immediately), thus disassociating the task. Also note
            // that mReuseTask is reset as a result of {@link Task#performClearTaskLocked}
            // launching another activity.
            // TODO(b/36119896):  We shouldn't trigger activity launches in this path since we are
            // already launching one.
            targetTask.performClearTaskLocked();
            targetTask.setIntent(mStartActivity);
            mAddingToTask = true;
+15 −4
Original line number Diff line number Diff line
@@ -1528,14 +1528,25 @@ class Task extends WindowContainer<WindowContainer> {
     */
    void performClearTaskLocked() {
        mReuseTask = true;
        mStackSupervisor.beginDeferResume();
        try {
            performClearTask("clear-task-all");
        } finally {
            mStackSupervisor.endDeferResume();
            mReuseTask = false;
        }
    }

    ActivityRecord performClearTaskForReuseLocked(ActivityRecord newR, int launchFlags) {
        mReuseTask = true;
        final ActivityRecord result = performClearTaskLocked(newR, launchFlags);
        mStackSupervisor.beginDeferResume();
        final ActivityRecord result;
        try {
            result = performClearTaskLocked(newR, launchFlags);
        } finally {
            mStackSupervisor.endDeferResume();
            mReuseTask = false;
        }
        return result;
    }