From 78f544187933d2e5f5028f0af6e515963b1dabb9 Mon Sep 17 00:00:00 2001 From: Jeff Chang Date: Thu, 14 Feb 2019 20:42:27 +0800 Subject: Suppress the warning toast if the preferredDisplay was set to singleTask singleTaskInstance displays will only contain one task and any attempt to launch new task will re-route to the default display. Bug: 123642392 Test: atest ActivityManagerMultiDisplayTests#testSingleTaskInstanceDisplay Change-Id: If782a121c5a303b6bfa9f23da59c1a62ef242c7f --- .../com/android/server/wm/ActivityStackSupervisor.java | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java index 0a3c2fba3930..c685b05e99e0 100644 --- a/services/core/java/com/android/server/wm/ActivityStackSupervisor.java +++ b/services/core/java/com/android/server/wm/ActivityStackSupervisor.java @@ -2332,6 +2332,20 @@ public class ActivityStackSupervisor implements RecentTasks.Callbacks { if (!task.canBeLaunchedOnDisplay(actualDisplayId)) { throw new IllegalStateException("Task resolved to incompatible display"); } + + final ActivityDisplay preferredDisplay = + mRootActivityContainer.getActivityDisplay(preferredDisplayId); + + final boolean singleTaskInstance = preferredDisplay != null + && preferredDisplay.isSingleTaskInstance(); + + if (singleTaskInstance) { + // Suppress the warning toast if the preferredDisplay was set to singleTask. + // The singleTaskInstance displays will only contain one task and any attempt to + // launch new task will re-route to the default display. + return; + } + 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. -- cgit v1.2.3-59-g8ed1b