Snap to task from other grid row if dismissing non-snapped focused task
and not enough tasks remain in current grid row to snap to.
Test: manual
Fix: 196200215
Change-Id: I611ffc457769d57ac0d13657fafa73a4a741f877
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 8c37644..73173f3 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -29,7 +29,6 @@
import static com.android.launcher3.LauncherState.BACKGROUND_APP;
import static com.android.launcher3.QuickstepTransitionManager.RECENTS_LAUNCH_DURATION;
import static com.android.launcher3.Utilities.EDGE_NAV_BAR;
-import static com.android.launcher3.Utilities.boundToRange;
import static com.android.launcher3.Utilities.mapToRange;
import static com.android.launcher3.Utilities.squaredHypot;
import static com.android.launcher3.Utilities.squaredTouchSlop;
@@ -3001,6 +3000,10 @@
: getBottomRowIdArray();
int snappedIndex = taskViewIdArray.indexOf(snappedTaskViewId);
taskViewIdArray.removeValue(dismissedTaskViewId);
+ if (finalNextFocusedTaskView != null) {
+ taskViewIdArray.removeValue(
+ finalNextFocusedTaskView.getTaskViewId());
+ }
if (snappedIndex < taskViewIdArray.size()) {
taskViewIdToSnapTo = taskViewIdArray.get(snappedIndex);
} else if (snappedIndex == taskViewIdArray.size()) {
@@ -3089,7 +3092,7 @@
}
}
setCurrentPage(pageToSnapTo);
- // Update various scroll depedent UI.
+ // Update various scroll-dependent UI.
dispatchScrollChanged();
updateActionsViewScrollAlpha();
if (isClearAllHidden()) {