From 460638e5efb21cd4d72d23f9f9ac0d966aed7198 Mon Sep 17 00:00:00 2001 From: Alex Chau Date: Tue, 23 Nov 2021 15:20:39 +0000 Subject: [PATCH] Fix grid layout problem after going back from split select - Don't reset mFocusedTaskViewId when focused task become split, so it's reset properly when it's added back to RecentsView - Moved applySplitScrollOffset to RecentsViewStateController to be called after mSplitHiddenTaskView is added back to RecentsView - Update scroll after going back from split - Don't reset mSplitHiddenTaskView's translation as it'll clear the grid translations Test: manual Bug: 181707736 Change-Id: I4bd204fc537ee520216f875b3eddf4dc94f7bfd8 --- .../BaseRecentsViewStateController.java | 13 ------------- .../RecentsViewStateController.java | 2 ++ .../android/quickstep/views/RecentsView.java | 19 +++++++------------ 3 files changed, 9 insertions(+), 25 deletions(-) diff --git a/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java b/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java index 2fa8b0765d..d74b6c5f1d 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/BaseRecentsViewStateController.java @@ -16,7 +16,6 @@ package com.android.launcher3.uioverrides; -import static com.android.launcher3.LauncherState.OVERVIEW_SPLIT_SELECT; import static com.android.launcher3.anim.Interpolators.AGGRESSIVE_EASE_IN_OUT; import static com.android.launcher3.anim.Interpolators.FINAL_FRAME; import static com.android.launcher3.anim.Interpolators.INSTANT; @@ -73,8 +72,6 @@ public abstract class BaseRecentsViewStateController getTaskModalnessProperty().set(mRecentsView, state.getOverviewModalness()); RECENTS_GRID_PROGRESS.set(mRecentsView, state.displayOverviewTasksAsGrid(mLauncher.getDeviceProfile()) ? 1f : 0f); - - applySplitScrollOffset(state); } @Override @@ -120,16 +117,6 @@ public abstract class BaseRecentsViewStateController boolean showAsGrid = toState.displayOverviewTasksAsGrid(mLauncher.getDeviceProfile()); setter.setFloat(mRecentsView, RECENTS_GRID_PROGRESS, showAsGrid ? 1f : 0f, showAsGrid ? INSTANT : FINAL_FRAME); - - applySplitScrollOffset(toState); - } - - private void applySplitScrollOffset(@NonNull final LauncherState state) { - if (state == OVERVIEW_SPLIT_SELECT) { - mRecentsView.applySplitPrimaryScrollOffset(); - } else { - mRecentsView.resetSplitPrimaryScrollOffset(); - } } abstract FloatProperty getTaskModalnessProperty(); diff --git a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java index 1f744e1953..d21c110f98 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/RecentsViewStateController.java @@ -83,8 +83,10 @@ public final class RecentsViewStateController extends LauncherState currentState = mLauncher.getStateManager().getState(); if (isSplitSelectionState(toState) && !isSplitSelectionState(currentState)) { builder.add(mRecentsView.createSplitSelectInitAnimation().buildAnim()); + mRecentsView.applySplitPrimaryScrollOffset(); } else if (!isSplitSelectionState(toState) && isSplitSelectionState(currentState)) { builder.add(mRecentsView.cancelSplitSelect(true).buildAnim()); + mRecentsView.resetSplitPrimaryScrollOffset(); } setAlphas(builder, config, toState); diff --git a/quickstep/src/com/android/quickstep/views/RecentsView.java b/quickstep/src/com/android/quickstep/views/RecentsView.java index ddd2a8293f..1f14146a0f 100644 --- a/quickstep/src/com/android/quickstep/views/RecentsView.java +++ b/quickstep/src/com/android/quickstep/views/RecentsView.java @@ -3120,14 +3120,10 @@ public abstract class RecentsView