Only call setCurrentPage in applyLoadPlan if mCurrentPage is outdated
- Apply the same for all 3 setCurrentPage cases as they can all causes page jumping
Bug: 197493120
Test: manual
Change-Id: I5f7013ce3ce4d6fe84c67123618c3bebeeffc43a
diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java
index e99835e..aeb10aa 100644
--- a/quickstep/src/com/android/quickstep/views/RecentsView.java
+++ b/quickstep/src/com/android/quickstep/views/RecentsView.java
@@ -1357,22 +1357,23 @@
}
}
+ int targetPage = -1;
if (mNextPage == INVALID_PAGE) {
// Set the current page to the running task, but not if settling on new task.
if (runningTaskId != -1) {
- setCurrentPage(indexOfChild(newRunningTaskView));
+ targetPage = indexOfChild(newRunningTaskView);
} else if (getTaskViewCount() > 0) {
- setCurrentPage(indexOfChild(getTaskViewAt(0)));
+ targetPage = indexOfChild(getTaskViewAt(0));
}
} else if (currentTaskId != -1) {
currentTaskView = getTaskViewByTaskId(currentTaskId);
if (currentTaskView != null) {
- int currentTaskViewIndex = indexOfChild(currentTaskView);
- if (mCurrentPage != currentTaskViewIndex) {
- setCurrentPage(currentTaskViewIndex);
- }
+ targetPage = indexOfChild(currentTaskView);
}
}
+ if (targetPage != -1 && mCurrentPage != targetPage) {
+ setCurrentPage(targetPage);
+ }
if (mIgnoreResetTaskId != -1 &&
getTaskViewByTaskId(mIgnoreResetTaskId) != ignoreResetTaskView) {