From 14b76f78673b331adeb9e4cc46e9a5593ffa46d1 Mon Sep 17 00:00:00 2001 From: Pat Manning Date: Thu, 29 May 2025 12:50:54 +0100 Subject: [PATCH] Do not reflow dismissed grid task is already in split select. When the task is not found in top or bottom set, return current page. This fixes rotation in overview while split select is already active. Fix: 420546041 Test: TaskGridNavHelperTest Flag: com.android.launcher3.enable_expressive_dismiss_task_motion Change-Id: I4f654b017a0c051bd373e78ebd3d3f02f7bdf3cf --- .../com/android/quickstep/util/TaskGridNavHelper.kt | 4 ++++ .../android/quickstep/util/TaskGridNavHelperTest.kt | 11 +++++++++++ 2 files changed, 15 insertions(+) diff --git a/quickstep/src/com/android/quickstep/util/TaskGridNavHelper.kt b/quickstep/src/com/android/quickstep/util/TaskGridNavHelper.kt index 0e788015cd..bf60b87b89 100644 --- a/quickstep/src/com/android/quickstep/util/TaskGridNavHelper.kt +++ b/quickstep/src/com/android/quickstep/util/TaskGridNavHelper.kt @@ -59,6 +59,10 @@ class TaskGridNavHelper( cycle: Boolean, ): Int { val inTop = topRowIds.contains(currentPageTaskViewId) + val inBottom = bottomRowIds.contains(currentPageTaskViewId) + if (!inTop && !inBottom) { + return currentPageTaskViewId + } val index = if (inTop) topRowIds.indexOf(currentPageTaskViewId) else bottomRowIds.indexOf(currentPageTaskViewId) diff --git a/quickstep/tests/multivalentTests/src/com/android/quickstep/util/TaskGridNavHelperTest.kt b/quickstep/tests/multivalentTests/src/com/android/quickstep/util/TaskGridNavHelperTest.kt index cb088fda56..f776b94cd0 100644 --- a/quickstep/tests/multivalentTests/src/com/android/quickstep/util/TaskGridNavHelperTest.kt +++ b/quickstep/tests/multivalentTests/src/com/android/quickstep/util/TaskGridNavHelperTest.kt @@ -786,6 +786,17 @@ class TaskGridNavHelperTest { .isEqualTo(ADD_DESK_PLACEHOLDER_ID) } + /* + 5 3 1 | + CLEAR_ALL | Invalid ID: + 6 4 2 | [25] --> [25] + */ + @Test + fun nextGridPage_invalidId_pressTab_noCycle_returnsCurrentPage() { + assertThat(getNextGridPage(currentPageTaskViewId = 25, TAB, delta = -1, cycle = false)) + .isEqualTo(25) + } + // Col offset: 0 1 2 // ----------- // ID grid: 4 2 0 start