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

Commit 6148841c authored by Louis Chang's avatar Louis Chang Committed by android-build-merger
Browse files

Merge "Fix empty stacks leaked after blocking background activity launches."...

Merge "Fix empty stacks leaked after blocking background activity launches." into qt-dev am: 9291a5af
am: 106d1c31

Change-Id: Ia9875971073145f898808c9fcc05645eb3e8040e
parents 75701be7 106d1c31
Loading
Loading
Loading
Loading
+12 −8
Original line number Diff line number Diff line
@@ -1419,6 +1419,13 @@ class ActivityStarter {
                    stack.finishActivityLocked(mStartActivity, RESULT_CANCELED,
                            null /* intentResultData */, "startActivity", true /* oomAdj */);
                }

                // Stack should also be detached from display and be removed if it's empty.
                if (startedActivityStack != null && startedActivityStack.isAttached()
                        && startedActivityStack.numActivities() == 0
                        && !startedActivityStack.isActivityTypeHome()) {
                    startedActivityStack.remove();
                }
            }
            mService.mWindowManager.continueSurfaceLayout();
        }
@@ -2289,15 +2296,17 @@ class ActivityStarter {
    }

    private int setTaskFromReuseOrCreateNewTask(TaskRecord taskToAffiliate) {
        if (mRestrictedBgActivity && (mReuseTask == null || !mReuseTask.containsAppUid(mCallingUid))
                && handleBackgroundActivityAbort(mStartActivity)) {
            return START_ABORTED;
        }

        mTargetStack = computeStackFocus(mStartActivity, true, mLaunchFlags, mOptions);

        // Do no move the target stack to front yet, as we might bail if
        // isLockTaskModeViolation fails below.

        if (mReuseTask == null) {
            if (mRestrictedBgActivity && handleBackgroundActivityAbort(mStartActivity)) {
                return START_ABORTED;
            }
            final TaskRecord task = mTargetStack.createTaskRecord(
                    mSupervisor.getNextTaskIdForUserLocked(mStartActivity.mUserId),
                    mNewTaskInfo != null ? mNewTaskInfo : mStartActivity.info,
@@ -2310,11 +2319,6 @@ class ActivityStarter {
            if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Starting new activity " + mStartActivity
                    + " in new task " + mStartActivity.getTaskRecord());
        } else {
            if (mRestrictedBgActivity && !mReuseTask.containsAppUid(mCallingUid)) {
                if (handleBackgroundActivityAbort(mStartActivity)) {
                    return START_ABORTED;
                }
            }
            addOrReparentStartingActivity(mReuseTask, "setTaskFromReuseOrCreateNewTask");
        }