Loading services/core/java/com/android/server/am/ActivityStack.java +5 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; import static android.app.ActivityManager.StackId.HOME_STACK_ID; import static android.app.ActivityManager.StackId.INVALID_STACK_ID; import static android.app.ActivityManager.StackId.PINNED_STACK_ID; import static android.app.ActivityManager.StackId.RECENTS_STACK_ID; import static android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT; import static android.content.pm.ActivityInfo.FLAG_RESUME_WHILE_PAUSING; import static android.content.pm.ActivityInfo.FLAG_SHOW_FOR_ALL_USERS; Loading Loading @@ -800,6 +801,10 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai return mStackId == HOME_STACK_ID; } final boolean isRecentsStack() { return mStackId == RECENTS_STACK_ID; } final boolean isHomeOrRecentsStack() { return StackId.isHomeOrRecentsStack(mStackId); } Loading services/core/java/com/android/server/am/ActivityStackSupervisor.java +18 −2 Original line number Diff line number Diff line Loading @@ -3025,8 +3025,9 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks; for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) { final ActivityStack stack = stacks.get(stackNdx); if (!r.isApplicationActivity() && !stack.isHomeOrRecentsStack()) { if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Skipping stack: (home activity) " + stack); if (!checkActivityBelongsInStack(r, stack)) { if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Skipping stack: (mismatch activity/stack) " + stack); continue; } if (!stack.mActivityContainer.isEligibleForNewTasks()) { Loading @@ -3053,6 +3054,21 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D return affinityMatch; } /** * Checks that for the given activity {@param r}, its activity type matches the {@param stack} * type. */ private boolean checkActivityBelongsInStack(ActivityRecord r, ActivityStack stack) { if (r.isHomeActivity()) { return stack.isHomeStack(); } else if (r.isRecentsActivity()) { return stack.isRecentsStack(); } else if (r.isAssistantActivity()) { return stack.isAssistantStack(); } return true; } ActivityRecord findActivityLocked(Intent intent, ActivityInfo info, boolean compareIntentFilters) { for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) { Loading Loading
services/core/java/com/android/server/am/ActivityStack.java +5 −0 Original line number Diff line number Diff line Loading @@ -23,6 +23,7 @@ import static android.app.ActivityManager.StackId.FULLSCREEN_WORKSPACE_STACK_ID; import static android.app.ActivityManager.StackId.HOME_STACK_ID; import static android.app.ActivityManager.StackId.INVALID_STACK_ID; import static android.app.ActivityManager.StackId.PINNED_STACK_ID; import static android.app.ActivityManager.StackId.RECENTS_STACK_ID; import static android.content.pm.ActivityInfo.CONFIG_SCREEN_LAYOUT; import static android.content.pm.ActivityInfo.FLAG_RESUME_WHILE_PAUSING; import static android.content.pm.ActivityInfo.FLAG_SHOW_FOR_ALL_USERS; Loading Loading @@ -800,6 +801,10 @@ class ActivityStack<T extends StackWindowController> extends ConfigurationContai return mStackId == HOME_STACK_ID; } final boolean isRecentsStack() { return mStackId == RECENTS_STACK_ID; } final boolean isHomeOrRecentsStack() { return StackId.isHomeOrRecentsStack(mStackId); } Loading
services/core/java/com/android/server/am/ActivityStackSupervisor.java +18 −2 Original line number Diff line number Diff line Loading @@ -3025,8 +3025,9 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks; for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) { final ActivityStack stack = stacks.get(stackNdx); if (!r.isApplicationActivity() && !stack.isHomeOrRecentsStack()) { if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Skipping stack: (home activity) " + stack); if (!checkActivityBelongsInStack(r, stack)) { if (DEBUG_TASKS) Slog.d(TAG_TASKS, "Skipping stack: (mismatch activity/stack) " + stack); continue; } if (!stack.mActivityContainer.isEligibleForNewTasks()) { Loading @@ -3053,6 +3054,21 @@ public class ActivityStackSupervisor extends ConfigurationContainer implements D return affinityMatch; } /** * Checks that for the given activity {@param r}, its activity type matches the {@param stack} * type. */ private boolean checkActivityBelongsInStack(ActivityRecord r, ActivityStack stack) { if (r.isHomeActivity()) { return stack.isHomeStack(); } else if (r.isRecentsActivity()) { return stack.isRecentsStack(); } else if (r.isAssistantActivity()) { return stack.isAssistantStack(); } return true; } ActivityRecord findActivityLocked(Intent intent, ActivityInfo info, boolean compareIntentFilters) { for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) { Loading