diff options
| author | 2018-09-17 18:13:52 +0800 | |
|---|---|---|
| committer | 2018-10-09 12:42:35 +0800 | |
| commit | ceeb5068e5955d2c8caa95aa3dbf4c95d2755ffa (patch) | |
| tree | 9a23a2e77ef385e3e4edd9ad583b8fa20ede210c | |
| parent | a72448e80916d2f55da29869c642275a3e5e624a (diff) | |
Clean up out of date logic for starting activity
- ASS#handleNonResizableTaskIfNeeded(), no longer necessary
to find proper stack for the task on default display since
exception would be thrown if the task cannot be launched
on target display.
- ActivityStarter#computeStackFocus(), no more dynamic or
static stacks.
Bug: 111363427
Test: atest ActivityManagerMultiDisplayTests
Change-Id: Id6da1e1e448b8bc525820cbf407eadd8c86a12bf
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStackSupervisor.java | 6 | ||||
| -rw-r--r-- | services/core/java/com/android/server/am/ActivityStarter.java | 16 |
2 files changed, 4 insertions, 18 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java index 0477d73301f1..7208b2414008 100644 --- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java @@ -53,6 +53,7 @@ import static android.view.Display.DEFAULT_DISPLAY; import static android.view.Display.INVALID_DISPLAY; import static android.view.Display.TYPE_VIRTUAL; import static android.view.WindowManager.TRANSIT_DOCK_TASK_FROM_RECENTS; + import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_ALL; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_FOCUS; import static com.android.server.am.ActivityManagerDebugConfig.DEBUG_IDLE; @@ -99,6 +100,7 @@ import static com.android.server.am.TaskRecord.LOCK_TASK_AUTH_WHITELISTED; import static com.android.server.am.TaskRecord.REPARENT_KEEP_STACK_AT_FRONT; import static com.android.server.am.TaskRecord.REPARENT_LEAVE_STACK_IN_PLACE; import static com.android.server.am.TaskRecord.REPARENT_MOVE_STACK_TO_FRONT; + import static java.lang.Integer.MAX_VALUE; import android.Manifest; @@ -4456,10 +4458,6 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D if (!task.canBeLaunchedOnDisplay(actualDisplayId)) { throw new IllegalStateException("Task resolved to incompatible display"); } - // The task might have landed on a display different from requested. - // TODO(multi-display): Find proper stack for the task on the default display. - mService.setTaskWindowingMode(task.taskId, - WINDOWING_MODE_FULLSCREEN_OR_SPLIT_SCREEN_SECONDARY, true /* toTop */); if (preferredDisplayId != actualDisplayId) { Slog.w(TAG, "Failed to put " + task + " on display " + preferredDisplayId); // Display a warning toast that we failed to put a task on a secondary display. diff --git a/services/core/java/com/android/server/am/ActivityStarter.java b/services/core/java/com/android/server/am/ActivityStarter.java index 2bd22e8601d6..13b16b2fb84c 100644 --- a/services/core/java/com/android/server/am/ActivityStarter.java +++ b/services/core/java/com/android/server/am/ActivityStarter.java @@ -1477,7 +1477,7 @@ class ActivityStarter { if (mStartActivity.resultTo == null && mInTask == null && !mAddingToTask && (mLaunchFlags & FLAG_ACTIVITY_NEW_TASK) != 0) { newTask = true; - result = setTaskFromReuseOrCreateNewTask(taskToAffiliate, topStack); + result = setTaskFromReuseOrCreateNewTask(taskToAffiliate); } else if (mSourceRecord != null) { result = setTaskFromSourceRecord(); } else if (mInTask != null) { @@ -2125,8 +2125,7 @@ class ActivityStarter { mSupervisor.updateUserStackLocked(mStartActivity.userId, mTargetStack); } - private int setTaskFromReuseOrCreateNewTask( - TaskRecord taskToAffiliate, ActivityStack topStack) { + private int setTaskFromReuseOrCreateNewTask(TaskRecord taskToAffiliate) { mTargetStack = computeStackFocus(mStartActivity, true, mLaunchFlags, mOptions); // Do no move the target stack to front yet, as we might bail if @@ -2431,17 +2430,6 @@ class ActivityStarter { } } if (stack == null) { - // We first try to put the task in the first dynamic stack on home display. - final ActivityDisplay display = mSupervisor.getDefaultDisplay(); - for (int stackNdx = display.getChildCount() - 1; stackNdx >= 0; --stackNdx) { - stack = display.getChildAt(stackNdx); - if (!stack.isOnHomeDisplay()) { - if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS, - "computeStackFocus: Setting focused stack=" + stack); - return stack; - } - } - // If there is no suitable dynamic stack then we figure out which static stack to use. stack = mSupervisor.getLaunchStack(r, aOptions, task, ON_TOP); } if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG_FOCUS, "computeStackFocus: New stack r=" |