[Predictive Back] Taskbar allapps -> home
Bug: b/272797556
Test: manual
Change-Id: I98a6033b3aa73199da8951cf094a3f7d7eccd032
diff --git a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsSlideInView.java b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsSlideInView.java
index 8502752..fbc7be0 100644
--- a/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsSlideInView.java
+++ b/quickstep/src/com/android/launcher3/taskbar/allapps/TaskbarAllAppsSlideInView.java
@@ -23,10 +23,14 @@
import android.util.AttributeSet;
import android.view.MotionEvent;
import android.view.animation.Interpolator;
+import android.window.BackEvent;
+import android.window.OnBackAnimationCallback;
+import android.window.OnBackInvokedDispatcher;
import com.android.launcher3.DeviceProfile;
import com.android.launcher3.Insettable;
import com.android.launcher3.R;
+import com.android.launcher3.config.FeatureFlags;
import com.android.launcher3.taskbar.allapps.TaskbarAllAppsViewController.TaskbarAllAppsCallbacks;
import com.android.launcher3.taskbar.overlay.TaskbarOverlayContext;
import com.android.launcher3.views.AbstractSlideInView;
@@ -53,6 +57,28 @@
mAllAppsCallbacks = callbacks;
}
+ private final OnBackAnimationCallback mOnBackAnimationCallback = new OnBackAnimationCallback() {
+ @Override
+ public void onBackCancelled() {
+ TaskbarAllAppsSlideInView.this.onBackCancelled();
+ }
+
+ @Override
+ public void onBackInvoked() {
+ TaskbarAllAppsSlideInView.this.onBackInvoked();
+ }
+
+ @Override
+ public void onBackProgressed(BackEvent backEvent) {
+ TaskbarAllAppsSlideInView.this.onBackProgressed(backEvent.getProgress());
+ }
+
+ @Override
+ public void onBackStarted(BackEvent backEvent) {
+ TaskbarAllAppsSlideInView.this.onBackStarted();
+ }
+ };
+
/** Opens the all apps view. */
void show(boolean animate) {
if (mIsOpen || mOpenCloseAnimator.isRunning()) {
@@ -69,6 +95,11 @@
} else {
mTranslationShift = TRANSLATION_SHIFT_OPENED;
}
+
+ if (FeatureFlags.ENABLE_BACK_SWIPE_LAUNCHER_ANIMATION.get()) {
+ findOnBackInvokedDispatcher().registerOnBackInvokedCallback(
+ OnBackInvokedDispatcher.PRIORITY_DEFAULT, mOnBackAnimationCallback);
+ }
}
/** The apps container inside this view. */
@@ -79,6 +110,9 @@
@Override
protected void handleClose(boolean animate) {
handleClose(animate, mAllAppsCallbacks.getCloseDuration());
+ if (FeatureFlags.ENABLE_BACK_SWIPE_LAUNCHER_ANIMATION.get()) {
+ findOnBackInvokedDispatcher().unregisterOnBackInvokedCallback(mOnBackAnimationCallback);
+ }
}
@Override