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

Commit d7236234 authored by Chavi Weingarten's avatar Chavi Weingarten Committed by Android (Google) Code Review
Browse files

Merge "Set options on startingActivity instead of topActivity" into pi-dev

parents 01e4949f ee6f81b2
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -4497,11 +4497,11 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
        return hasVisibleActivities;
    }

    private void updateTransitLocked(int transit, ActivityOptions options) {
    private void updateTransitLocked(int transit, ActivityRecord starting,
            ActivityOptions options) {
        if (options != null) {
            ActivityRecord r = topRunningActivityLocked();
            if (r != null && !r.isState(RESUMED)) {
                r.updateOptionsLocked(options);
            if (starting != null && !starting.isState(RESUMED)) {
                starting.updateOptionsLocked(options);
            } else {
                ActivityOptions.abort(options);
            }
@@ -4538,8 +4538,9 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
        }
    }

    final void moveTaskToFrontLocked(TaskRecord tr, boolean noAnimation, ActivityOptions options,
            AppTimeTracker timeTracker, String reason) {
    final void moveTaskToFrontLocked(TaskRecord tr, ActivityRecord starting,
            boolean noAnimation, ActivityOptions options, AppTimeTracker timeTracker,
            String reason) {
        if (DEBUG_SWITCH) Slog.v(TAG_SWITCH, "moveTaskToFront: " + tr);

        final ActivityStack topStack = getDisplay().getTopStack();
@@ -4551,7 +4552,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
            if (noAnimation) {
                ActivityOptions.abort(options);
            } else {
                updateTransitLocked(TRANSIT_TASK_TO_FRONT, options);
                updateTransitLocked(TRANSIT_TASK_TO_FRONT, starting, options);
            }
            return;
        }
@@ -4589,7 +4590,7 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
            }
            ActivityOptions.abort(options);
        } else {
            updateTransitLocked(TRANSIT_TASK_TO_FRONT, options);
            updateTransitLocked(TRANSIT_TASK_TO_FRONT, starting, options);
        }
        // If a new task is moved to the front, then mark the existing top activity as supporting
        // picture-in-picture while paused only if the task would not be considered an oerlay on top
+1 −1
Original line number Diff line number Diff line
@@ -2196,7 +2196,7 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D
        }

        final ActivityRecord r = task.getTopActivity();
        currentStack.moveTaskToFrontLocked(task, false /* noAnimation */, options,
        currentStack.moveTaskToFrontLocked(task, r, false /* noAnimation */, options,
                r == null ? null : r.appTimeTracker, reason);

        if (DEBUG_STACK) Slog.d(TAG_STACK,
+9 −8
Original line number Diff line number Diff line
@@ -1815,8 +1815,9 @@ class ActivityStarter {
                        // We only want to move to the front, if we aren't going to launch on a
                        // different stack. If we launch on a different stack, we will put the
                        // task on top there.
                        mTargetStack.moveTaskToFrontLocked(intentTask, mNoAnimation, mOptions,
                                mStartActivity.appTimeTracker, "bringingFoundTaskToFront");
                        mTargetStack.moveTaskToFrontLocked(intentTask, mStartActivity, mNoAnimation,
                                mOptions, mStartActivity.appTimeTracker,
                                "bringingFoundTaskToFront");
                        mMovedToFront = true;
                    } else if (launchStack.inSplitScreenWindowingMode()) {
                        if ((mLaunchFlags & FLAG_ACTIVITY_LAUNCH_ADJACENT) != 0) {
@@ -1830,7 +1831,7 @@ class ActivityStarter {
                            // We choose to move task to front instead of launching it adjacent
                            // when specific stack was requested explicitly and it appeared to be
                            // adjacent stack, but FLAG_ACTIVITY_LAUNCH_ADJACENT was not set.
                            mTargetStack.moveTaskToFrontLocked(intentTask,
                            mTargetStack.moveTaskToFrontLocked(intentTask, mStartActivity,
                                    mNoAnimation, mOptions, mStartActivity.appTimeTracker,
                                    "bringToFrontInsteadOfAdjacentLaunch");
                        }
@@ -2059,7 +2060,7 @@ class ActivityStarter {

        final TaskRecord topTask = mTargetStack.topTask();
        if (topTask != sourceTask && !mAvoidMoveToFront) {
            mTargetStack.moveTaskToFrontLocked(sourceTask, mNoAnimation, mOptions,
            mTargetStack.moveTaskToFrontLocked(sourceTask, mStartActivity, mNoAnimation, mOptions,
                    mStartActivity.appTimeTracker, "sourceTaskToFront");
        } else if (mDoResume) {
            mTargetStack.moveToFront("sourceStackToFront");
@@ -2125,7 +2126,7 @@ class ActivityStarter {
                && top.userId == mStartActivity.userId) {
            if ((mLaunchFlags & FLAG_ACTIVITY_SINGLE_TOP) != 0
                    || isLaunchModeOneOf(LAUNCH_SINGLE_TOP, LAUNCH_SINGLE_TASK)) {
                mTargetStack.moveTaskToFrontLocked(mInTask, mNoAnimation, mOptions,
                mTargetStack.moveTaskToFrontLocked(mInTask, mStartActivity, mNoAnimation, mOptions,
                        mStartActivity.appTimeTracker, "inTaskToFront");
                if ((mStartFlags & START_FLAG_ONLY_IF_NEEDED) != 0) {
                    // We don't need to start a new activity, and the client said not to do
@@ -2138,7 +2139,7 @@ class ActivityStarter {
        }

        if (!mAddingToTask) {
            mTargetStack.moveTaskToFrontLocked(mInTask, mNoAnimation, mOptions,
            mTargetStack.moveTaskToFrontLocked(mInTask, mStartActivity, mNoAnimation, mOptions,
                    mStartActivity.appTimeTracker, "inTaskToFront");
            // We don't actually want to have this activity added to the task, so just
            // stop here but still tell the caller that we consumed the intent.
@@ -2158,8 +2159,8 @@ class ActivityStarter {
            updateBounds(mInTask, mLaunchParams.mBounds);
        }

        mTargetStack.moveTaskToFrontLocked(
                mInTask, mNoAnimation, mOptions, mStartActivity.appTimeTracker, "inTaskToFront");
        mTargetStack.moveTaskToFrontLocked(mInTask, mStartActivity, mNoAnimation, mOptions,
                mStartActivity.appTimeTracker, "inTaskToFront");

        addOrReparentStartingActivity(mInTask, "setTaskFromInTask");
        if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Starting new activity " + mStartActivity