Loading services/core/java/com/android/server/wm/ActivityStarter.java +2 −44 Original line number Diff line number Diff line Loading @@ -201,8 +201,6 @@ class ActivityStarter { @VisibleForTesting boolean mAddingToTask; private ActivityInfo mNewTaskInfo; private Intent mNewTaskIntent; private Task mSourceRootTask; private Task mTargetRootTask; // The task that the last activity was started into. We currently reset the actual start Loading Loading @@ -613,8 +611,6 @@ class ActivityStarter { mInTaskFragment = starter.mInTaskFragment; mAddingToTask = starter.mAddingToTask; mNewTaskInfo = starter.mNewTaskInfo; mNewTaskIntent = starter.mNewTaskIntent; mSourceRootTask = starter.mSourceRootTask; mTargetTask = starter.mTargetTask; Loading Loading @@ -1819,9 +1815,6 @@ class ActivityStarter { voiceSession, voiceInteractor, restrictedBgActivity); computeLaunchingTaskFlags(); computeSourceRootTask(); mIntent.setFlags(mLaunchFlags); boolean dreamStopping = false; Loading Loading @@ -2413,8 +2406,6 @@ class ActivityStarter { mInTaskFragment = null; mAddingToTask = false; mNewTaskInfo = null; mNewTaskIntent = null; mSourceRootTask = null; mTargetRootTask = null; Loading Loading @@ -2448,6 +2439,7 @@ class ActivityStarter { mOptions = options; mCallingUid = r.launchedFromUid; mSourceRecord = sourceRecord; mSourceRootTask = mSourceRecord != null ? mSourceRecord.getRootTask() : null; mVoiceSession = voiceSession; mVoiceInteractor = voiceInteractor; mRestrictedBgActivity = restrictedBgActivity; Loading Loading @@ -2708,39 +2700,6 @@ class ActivityStarter { } } private void computeSourceRootTask() { if (mSourceRecord == null) { mSourceRootTask = null; return; } if (!mSourceRecord.finishing) { mSourceRootTask = mSourceRecord.getRootTask(); return; } // If the source is finishing, we can't further count it as our source. This is because the // task it is associated with may now be empty and on its way out, so we don't want to // blindly throw it in to that task. Instead we will take the NEW_TASK flow and try to find // a task for it. But save the task information so it can be used when creating the new task. if ((mLaunchFlags & FLAG_ACTIVITY_NEW_TASK) == 0) { Slog.w(TAG, "startActivity called from finishing " + mSourceRecord + "; forcing " + "Intent.FLAG_ACTIVITY_NEW_TASK for: " + mIntent); mLaunchFlags |= FLAG_ACTIVITY_NEW_TASK; // It is not guaranteed that the source record will have a task associated with it. // For example, if this method is being called for processing a pending activity // launch, it is possible that the activity has been removed from the task after the // launch was enqueued. final Task sourceTask = mSourceRecord.getTask(); if (sourceTask == null || sourceTask.getTopNonFinishingActivity() == null) { mNewTaskInfo = mSourceRecord.info; mNewTaskIntent = sourceTask != null ? sourceTask.intent : null; } } mSourceRecord = null; mSourceRootTask = null; } /** * Decide whether the new activity should be inserted into an existing task. Returns null * if not or an ActivityRecord with the task into which the new activity should be added. Loading Loading @@ -2934,8 +2893,7 @@ class ActivityStarter { private void setNewTask(Task taskToAffiliate) { final boolean toTop = !mLaunchTaskBehind && !mAvoidMoveToFront; final Task task = mTargetRootTask.reuseOrCreateTask( mNewTaskInfo != null ? mNewTaskInfo : mStartActivity.info, mNewTaskIntent != null ? mNewTaskIntent : mIntent, mVoiceSession, mStartActivity.info, mIntent, mVoiceSession, mVoiceInteractor, toTop, mStartActivity, mSourceRecord, mOptions); task.mTransitionController.collectExistenceChange(task); addOrReparentStartingActivity(task, "setTaskFromReuseOrCreateNewTask"); Loading Loading
services/core/java/com/android/server/wm/ActivityStarter.java +2 −44 Original line number Diff line number Diff line Loading @@ -201,8 +201,6 @@ class ActivityStarter { @VisibleForTesting boolean mAddingToTask; private ActivityInfo mNewTaskInfo; private Intent mNewTaskIntent; private Task mSourceRootTask; private Task mTargetRootTask; // The task that the last activity was started into. We currently reset the actual start Loading Loading @@ -613,8 +611,6 @@ class ActivityStarter { mInTaskFragment = starter.mInTaskFragment; mAddingToTask = starter.mAddingToTask; mNewTaskInfo = starter.mNewTaskInfo; mNewTaskIntent = starter.mNewTaskIntent; mSourceRootTask = starter.mSourceRootTask; mTargetTask = starter.mTargetTask; Loading Loading @@ -1819,9 +1815,6 @@ class ActivityStarter { voiceSession, voiceInteractor, restrictedBgActivity); computeLaunchingTaskFlags(); computeSourceRootTask(); mIntent.setFlags(mLaunchFlags); boolean dreamStopping = false; Loading Loading @@ -2413,8 +2406,6 @@ class ActivityStarter { mInTaskFragment = null; mAddingToTask = false; mNewTaskInfo = null; mNewTaskIntent = null; mSourceRootTask = null; mTargetRootTask = null; Loading Loading @@ -2448,6 +2439,7 @@ class ActivityStarter { mOptions = options; mCallingUid = r.launchedFromUid; mSourceRecord = sourceRecord; mSourceRootTask = mSourceRecord != null ? mSourceRecord.getRootTask() : null; mVoiceSession = voiceSession; mVoiceInteractor = voiceInteractor; mRestrictedBgActivity = restrictedBgActivity; Loading Loading @@ -2708,39 +2700,6 @@ class ActivityStarter { } } private void computeSourceRootTask() { if (mSourceRecord == null) { mSourceRootTask = null; return; } if (!mSourceRecord.finishing) { mSourceRootTask = mSourceRecord.getRootTask(); return; } // If the source is finishing, we can't further count it as our source. This is because the // task it is associated with may now be empty and on its way out, so we don't want to // blindly throw it in to that task. Instead we will take the NEW_TASK flow and try to find // a task for it. But save the task information so it can be used when creating the new task. if ((mLaunchFlags & FLAG_ACTIVITY_NEW_TASK) == 0) { Slog.w(TAG, "startActivity called from finishing " + mSourceRecord + "; forcing " + "Intent.FLAG_ACTIVITY_NEW_TASK for: " + mIntent); mLaunchFlags |= FLAG_ACTIVITY_NEW_TASK; // It is not guaranteed that the source record will have a task associated with it. // For example, if this method is being called for processing a pending activity // launch, it is possible that the activity has been removed from the task after the // launch was enqueued. final Task sourceTask = mSourceRecord.getTask(); if (sourceTask == null || sourceTask.getTopNonFinishingActivity() == null) { mNewTaskInfo = mSourceRecord.info; mNewTaskIntent = sourceTask != null ? sourceTask.intent : null; } } mSourceRecord = null; mSourceRootTask = null; } /** * Decide whether the new activity should be inserted into an existing task. Returns null * if not or an ActivityRecord with the task into which the new activity should be added. Loading Loading @@ -2934,8 +2893,7 @@ class ActivityStarter { private void setNewTask(Task taskToAffiliate) { final boolean toTop = !mLaunchTaskBehind && !mAvoidMoveToFront; final Task task = mTargetRootTask.reuseOrCreateTask( mNewTaskInfo != null ? mNewTaskInfo : mStartActivity.info, mNewTaskIntent != null ? mNewTaskIntent : mIntent, mVoiceSession, mStartActivity.info, mIntent, mVoiceSession, mVoiceInteractor, toTop, mStartActivity, mSourceRecord, mOptions); task.mTransitionController.collectExistenceChange(task); addOrReparentStartingActivity(task, "setTaskFromReuseOrCreateNewTask"); Loading