From ac8e132f2da11bd0021bf0c6c36d24eb349c4d43 Mon Sep 17 00:00:00 2001 From: Schneider Victor-tulias Date: Tue, 11 Jun 2024 15:52:55 -0400 Subject: [PATCH] Exclude home and recents activity types when overriding recents-excluded tasks These tasks could point to overview itself, causing a very confusing screenshot. By excluding these tasks, we will default to using the task preview Flag: NONE bug fix Fixes: 336334715 Test: used circle to search from home, swiped to home, then pressed "select" overview action button. also checked temp logs Change-Id: I0b0ca50585413b479e4830f06b57b8b5e19670a8 (cherry picked from commit 3eb4efac95571eb5837ca66cae840033fc5fd893) --- quickstep/src/com/android/quickstep/TopTaskTracker.java | 6 ++++-- .../src/com/android/quickstep/TouchInteractionService.java | 2 +- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/quickstep/src/com/android/quickstep/TopTaskTracker.java b/quickstep/src/com/android/quickstep/TopTaskTracker.java index a2a6dde483..c8dd2417ec 100644 --- a/quickstep/src/com/android/quickstep/TopTaskTracker.java +++ b/quickstep/src/com/android/quickstep/TopTaskTracker.java @@ -233,7 +233,7 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta * If the given task holds an activity that is excluded from recents, and there * is another running task that is not excluded from recents, returns that underlying task. */ - public @Nullable CachedTaskInfo otherVisibleTaskThisIsExcludedOver() { + public @Nullable CachedTaskInfo getVisibleNonExcludedTask() { if (mTopTask == null || (mTopTask.baseIntent.getFlags() & FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) == 0) { // Not an excluded task. @@ -241,7 +241,9 @@ public class TopTaskTracker extends ISplitScreenListener.Stub implements TaskSta } List visibleNonExcludedTasks = mAllCachedTasks.stream() .filter(t -> t.isVisible - && (t.baseIntent.getFlags() & FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) == 0) + && (t.baseIntent.getFlags() & FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS) == 0 + && t.getActivityType() != ACTIVITY_TYPE_HOME + && t.getActivityType() != ACTIVITY_TYPE_RECENTS) .toList(); return visibleNonExcludedTasks.isEmpty() ? null : new CachedTaskInfo(visibleNonExcludedTasks); diff --git a/quickstep/src/com/android/quickstep/TouchInteractionService.java b/quickstep/src/com/android/quickstep/TouchInteractionService.java index 8cd733b51b..2abc81eddd 100644 --- a/quickstep/src/com/android/quickstep/TouchInteractionService.java +++ b/quickstep/src/com/android/quickstep/TouchInteractionService.java @@ -1162,7 +1162,7 @@ public class TouchInteractionService extends Service { // running activity as the task behind the overlay. TopTaskTracker.CachedTaskInfo otherVisibleTask = runningTask == null ? null - : runningTask.otherVisibleTaskThisIsExcludedOver(); + : runningTask.getVisibleNonExcludedTask(); if (otherVisibleTask != null) { ActiveGestureLog.INSTANCE.addLog(new CompoundString("Changing active task to ") .append(otherVisibleTask.getPackageName())