diff --git a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java index 3fe2e59471..0e1120ba05 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java @@ -90,9 +90,9 @@ public final class RecentsViewStateController extends // While animating into recents, update the visible task data as needed builder.addOnFrameCallback(() -> mRecentsView.loadVisibleTaskData(FLAG_UPDATE_ALL)); mRecentsView.updateEmptyMessage(); - // TODO(b/238461210): Remove logging once root cause of flake detected. + // TODO(b/246283207): Remove logging once root cause of flake detected. if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { - Log.d("b/238461210", "RecentsView#setStateWithAnimationInternal getCurrentPage(): " + Log.d("b/246283207", "RecentsView#setStateWithAnimationInternal getCurrentPage(): " + mRecentsView.getCurrentPage() + ", getScrollForPage(getCurrentPage())): " + mRecentsView.getScrollForPage(mRecentsView.getCurrentPage())); diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index eeaf23821d..c8ef9582f8 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -1511,21 +1511,6 @@ public abstract class RecentsView !settlingOnNewTask -> " - + "previousCurrentPage: " + previousCurrentPage - + ", getScrollForPage(previousCurrentPage): " - + getScrollForPage(previousCurrentPage)); - } - setCurrentPage(previousCurrentPage); - } - // Keep same previous focused task TaskView newFocusedTaskView = getTaskViewByTaskId(focusedTaskId); // If the list changed, maybe the focused task doesn't exist anymore @@ -1550,21 +1535,36 @@ public abstract class RecentsView 0) { targetPage = indexOfChild(requireTaskViewAt(0)); } - } else if (currentTaskId != -1) { - currentTaskView = getTaskViewByTaskId(currentTaskId); - if (currentTaskView != null) { - targetPage = indexOfChild(currentTaskView); - } } if (targetPage != -1 && mCurrentPage != targetPage) { - setCurrentPage(targetPage); + int finalTargetPage = targetPage; + runOnPageScrollsInitialized(() -> { + // TODO(b/246283207): Remove logging once root cause of flake detected. + if (Utilities.IS_RUNNING_IN_TEST_HARNESS) { + Log.d("b/246283207", "RecentsView#applyLoadPlan() -> " + + "previousCurrentPage: " + previousCurrentPage + + ", targetPage: " + finalTargetPage + + ", getScrollForPage(targetPage): " + + getScrollForPage(finalTargetPage)); + } + setCurrentPage(finalTargetPage); + }); } if (mIgnoreResetTaskId != -1 && diff --git a/src/com/android/launcher3/PagedView.java b/src/com/android/launcher3/PagedView.java index 377843cb3b..eb68adb3e8 100644 --- a/src/com/android/launcher3/PagedView.java +++ b/src/com/android/launcher3/PagedView.java @@ -772,9 +772,9 @@ public abstract class PagedView extends ViewGrou } if (mScroller.isFinished() && pageScrollChanged) { - // TODO(b/238461210): Remove logging once root cause of flake detected. + // TODO(b/246283207): Remove logging once root cause of flake detected. if (Utilities.IS_RUNNING_IN_TEST_HARNESS && !(this instanceof Workspace)) { - Log.d("b/238461210", this.getClass().getSimpleName() + "#onLayout() -> " + Log.d("b/246283207", this.getClass().getSimpleName() + "#onLayout() -> " + "if(mScroller.isFinished() && pageScrollChanged) -> getNextPage(): " + getNextPage() + ", getScrollForPage(getNextPage()): " + getScrollForPage(getNextPage()));