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

Commit 03f73fe4 authored by Bryce Lee's avatar Bryce Lee Committed by Android (Google) Code Review
Browse files

Merge "Provide activity details for task layout in ActivityStarter."

parents 418346a8 b802ea19
Loading
Loading
Loading
Loading
+10 −1
Original line number Diff line number Diff line
@@ -5003,13 +5003,22 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai
    TaskRecord createTaskRecord(int taskId, ActivityInfo info, Intent intent,
            IVoiceInteractionSession voiceSession, IVoiceInteractor voiceInteractor,
            boolean toTop) {
        return createTaskRecord(taskId, info, intent, voiceSession, voiceInteractor, toTop,
                null /*activity*/, null /*source*/, null /*options*/);
    }

    TaskRecord createTaskRecord(int taskId, ActivityInfo info, Intent intent,
            IVoiceInteractionSession voiceSession, IVoiceInteractor voiceInteractor,
            boolean toTop, ActivityRecord activity, ActivityRecord source,
            ActivityOptions options) {
        final TaskRecord task = new TaskRecord(mService, taskId, info, intent, voiceSession,
                voiceInteractor);
        // add the task to stack first, mTaskPositioner might need the stack association
        addTask(task, toTop, "createTaskRecord");
        final boolean isLockscreenShown = mService.mStackSupervisor.getKeyguardController()
                .isKeyguardShowing(mDisplayId != INVALID_DISPLAY ? mDisplayId : DEFAULT_DISPLAY);
        if (!mStackSupervisor.getLaunchingBoundsController().layoutTask(task, info.windowLayout)
        if (!mStackSupervisor.getLaunchingBoundsController()
                .layoutTask(task, info.windowLayout, activity, source, options)
                && !matchParentBounds() && task.isResizeable() && !isLockscreenShown) {
            task.updateOverrideConfiguration(getOverrideBounds());
        }
+3 −2
Original line number Diff line number Diff line
@@ -1756,7 +1756,8 @@ class ActivityStarter {
                    mSupervisor.getNextTaskIdForUserLocked(mStartActivity.userId),
                    mNewTaskInfo != null ? mNewTaskInfo : mStartActivity.info,
                    mNewTaskIntent != null ? mNewTaskIntent : mIntent, mVoiceSession,
                    mVoiceInteractor, !mLaunchTaskBehind /* toTop */);
                    mVoiceInteractor, !mLaunchTaskBehind /* toTop */, mStartActivity, mSourceRecord,
                    mOptions);
            addOrReparentStartingActivity(task, "setTaskFromReuseOrCreateNewTask - mReuseTask");
            updateBounds(mStartActivity.getTask(), mLaunchBounds);

@@ -1965,7 +1966,7 @@ class ActivityStarter {
        final ActivityRecord prev = mTargetStack.getTopActivity();
        final TaskRecord task = (prev != null) ? prev.getTask() : mTargetStack.createTaskRecord(
                mSupervisor.getNextTaskIdForUserLocked(mStartActivity.userId), mStartActivity.info,
                mIntent, null, null, true);
                mIntent, null, null, true, mStartActivity, mSourceRecord, mOptions);
        addOrReparentStartingActivity(task, "setTaskToCurrentTopOrCreateNewTask");
        mTargetStack.positionChildWindowContainerAtTop(task);
        if (DEBUG_TASKS) Slog.v(TAG_TASKS, "Starting new activity " + mStartActivity
+6 −2
Original line number Diff line number Diff line
@@ -101,8 +101,12 @@ class LaunchingBoundsController {
     * @return {@code true} if bounds were set on the task. {@code false} otherwise.
     */
    boolean layoutTask(TaskRecord task, WindowLayout layout) {
        calculateBounds(task, layout, null /*activity*/, null /*source*/, null /*options*/,
                mTmpRect);
        return layoutTask(task, layout, null /*activity*/, null /*source*/, null /*options*/);
    }

    boolean layoutTask(TaskRecord task, WindowLayout layout, ActivityRecord activity,
            ActivityRecord source, ActivityOptions options) {
        calculateBounds(task, layout, activity, source, options, mTmpRect);

        if (mTmpRect.isEmpty()) {
            return false;
+6 −0
Original line number Diff line number Diff line
@@ -277,4 +277,10 @@ public class ActivityStarterTests extends ActivityTestsBase {
            verify(options, times(1)).abort();
        }
    }

// TODO(b/69270257): Add test to verify task layout is passed additional data such as activity and
// source.
//    @Test
//    public void testCreateTaskLayout() {
//    }
}