Loading services/core/java/com/android/server/am/ActivityStack.java +10 −1 Original line number Diff line number Diff line Loading @@ -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()); } Loading services/core/java/com/android/server/am/ActivityStarter.java +3 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 Loading services/core/java/com/android/server/am/LaunchingBoundsController.java +6 −2 Original line number Diff line number Diff line Loading @@ -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; Loading services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java +6 −0 Original line number Diff line number Diff line Loading @@ -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() { // } } Loading
services/core/java/com/android/server/am/ActivityStack.java +10 −1 Original line number Diff line number Diff line Loading @@ -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()); } Loading
services/core/java/com/android/server/am/ActivityStarter.java +3 −2 Original line number Diff line number Diff line Loading @@ -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); Loading Loading @@ -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 Loading
services/core/java/com/android/server/am/LaunchingBoundsController.java +6 −2 Original line number Diff line number Diff line Loading @@ -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; Loading
services/tests/servicestests/src/com/android/server/am/ActivityStarterTests.java +6 −0 Original line number Diff line number Diff line Loading @@ -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() { // } }