diff --git a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java index 93ee76e0eb..7558b0097e 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java +++ b/quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java @@ -650,10 +650,13 @@ public class QuickstepLauncher extends Launcher { @Override protected void onCreate(Bundle savedInstanceState) { - super.onCreate(savedInstanceState); + // Back dispatcher is registered in {@link BaseActivity#onCreate}. For predictive back to + // work, we must opt-in BEFORE registering back dispatcher. So we need to call + // setEnableOnBackInvokedCallback() before super.onCreate() if (Utilities.ATLEAST_U && enablePredictiveBackGesture()) { getApplicationInfo().setEnableOnBackInvokedCallback(true); } + super.onCreate(savedInstanceState); if (savedInstanceState != null) { mPendingSplitSelectInfo = ObjectWrapper.unwrap( savedInstanceState.getIBinder(PENDING_SPLIT_SELECT_INFO)); diff --git a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java index b7a907fa6b..a92e77aa04 100644 --- a/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java +++ b/quickstep/src/com/android/launcher3/uioverrides/touchcontrollers/NoButtonQuickSwitchTouchController.java @@ -324,12 +324,12 @@ public class NoButtonQuickSwitchTouchController implements TouchController, @Override public void onDragEnd(PointF velocity) { + cancelAnimations(); boolean horizontalFling = mSwipeDetector.isFling(velocity.x); boolean verticalFling = mSwipeDetector.isFling(velocity.y); boolean noFling = !horizontalFling && !verticalFling; if (mMotionPauseDetector.isPaused() && noFling) { // Going to Overview. - cancelAnimations(); InteractionJankMonitorWrapper.cancel(Cuj.CUJ_LAUNCHER_QUICK_SWITCH); StateAnimationConfig config = new StateAnimationConfig(); @@ -455,7 +455,6 @@ public class NoButtonQuickSwitchTouchController implements TouchController, nonOverviewAnim.setDuration(Math.max(xDuration, yDuration)); mNonOverviewAnim.setEndAction(() -> onAnimationToStateCompleted(targetState)); - cancelAnimations(); xOverviewAnim.start(); yOverviewAnim.start(); nonOverviewAnim.start();