Merge "Let `getOffsetToDismissedTask` not rely on `taskCount`" into main
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index 26c94f5..499f50e 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -3918,6 +3918,7 @@
: -newClearAllShortTotalWidthTranslation;
}
mDismissPrimaryTranslations = new int[taskCount];
+ int lastTaskViewIndex = indexOfChild(mUtils.getLastTaskView());
for (int i = 0; i < count; i++) {
View child = getChildAt(i);
if (child == dismissedTaskView) {
@@ -3927,7 +3928,8 @@
} else if (!showAsGrid || (enableLargeDesktopWindowingTile()
&& dismissedTaskView != null && dismissedTaskView.isLargeTile()
&& nextFocusedTaskView == null && !dismissingForSplitSelection)) {
- int offset = getOffsetToDismissedTask(scrollDiffPerPage, dismissedIndex, taskCount);
+ int offset = getOffsetToDismissedTask(scrollDiffPerPage, dismissedIndex,
+ lastTaskViewIndex);
int scrollDiff = newScroll[i] - oldScroll[i] + offset;
if (scrollDiff != 0) {
translateTaskWhenDismissed(
@@ -4277,14 +4279,14 @@
* - Current page is rightmost page (leftmost for RTL)
* - Dragging an adjacent page on the left side (right side for RTL)
*/
- private int getOffsetToDismissedTask(int scrollDiffPerPage, int dismissedIndex, int taskCount) {
- // When mCurrentPage is ClearAllButton, use the last TaskView instead to calculate
- // offset.
- int currentPage = mCurrentPage == taskCount ? taskCount - 1 : mCurrentPage;
+ private int getOffsetToDismissedTask(int scrollDiffPerPage, int dismissedIndex,
+ int lastTaskViewIndex) {
+ // If `mCurrentPage` is beyond `lastTaskViewIndex`, use the last TaskView instead to
+ // calculate offset.
+ int currentPage = Math.min(mCurrentPage, lastTaskViewIndex);
int offset = mIsRtl ? scrollDiffPerPage : 0;
if (currentPage == dismissedIndex) {
- int lastPage = taskCount - 1;
- if (currentPage == lastPage) {
+ if (currentPage == lastTaskViewIndex) {
offset += mIsRtl ? -scrollDiffPerPage : scrollDiffPerPage;
}
} else {