From c63ea765b5ca9f8928cc9c03c7e9518fb21c0686 Mon Sep 17 00:00:00 2001 From: wilsonshih Date: Tue, 17 May 2022 13:15:56 +0800 Subject: [PATCH] Check task switch by comparing leaf task. In multi-window mode, the previous top root task can be the parent of the task of launched activity, so the task switch should comparing by leaf task level. Bug: 231363211 Test: atest ActivityStarterTests Test: enter split screen, start another activity from an existing task, verify there won't create starting window on that task. Change-Id: Iaf59e405671a1b8a6674bab4f49ee36b6eb24da3 --- services/core/java/com/android/server/wm/ActivityStarter.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/wm/ActivityStarter.java b/services/core/java/com/android/server/wm/ActivityStarter.java index b2f27ebaf5133..2824d543b518d 100644 --- a/services/core/java/com/android/server/wm/ActivityStarter.java +++ b/services/core/java/com/android/server/wm/ActivityStarter.java @@ -1786,7 +1786,8 @@ class ActivityStarter { } // Get top task at beginning because the order may be changed when reusing existing task. - final Task prevTopTask = mPreferredTaskDisplayArea.getFocusedRootTask(); + final Task prevTopRootTask = mPreferredTaskDisplayArea.getFocusedRootTask(); + final Task prevTopTask = prevTopRootTask != null ? prevTopRootTask.getTopLeafTask() : null; final Task reusedTask = getReusableTask(); // If requested, freeze the task list