From 661f96066e4cf01bb4e27fe65cf61d39acc6b4a7 Mon Sep 17 00:00:00 2001 From: Johannes Gallmann Date: Thu, 7 Dec 2023 15:48:39 +0100 Subject: [PATCH] Fix predictive back to home with pinned taskbar Bug: 309969400 Flag: ACONFIG com.android.window.flags.predictive_back_system_animations DISABLED Test: Manual, i.e. testing predictive back with pinned taskbar Change-Id: Ic6f747e87f8ebb2bed58f4783736ed4dca43fb7e --- .../quickstep/LauncherBackAnimationController.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java b/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java index 9e58160271..7c24ba8fe6 100644 --- a/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java +++ b/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java @@ -23,6 +23,8 @@ import static com.android.launcher3.AbstractFloatingView.TYPE_REBIND_SAFE; import static com.android.launcher3.BaseActivity.INVISIBLE_ALL; import static com.android.launcher3.BaseActivity.INVISIBLE_BY_PENDING_FLAGS; import static com.android.launcher3.BaseActivity.PENDING_INVISIBLE_BY_WALLPAPER_ANIMATION; +import static com.android.launcher3.LauncherPrefs.TASKBAR_PINNING; +import static com.android.launcher3.config.FeatureFlags.enableTaskbarPinning; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; @@ -52,6 +54,7 @@ import android.window.IOnBackInvokedCallback; import com.android.internal.view.AppearanceRegion; import com.android.launcher3.AbstractFloatingView; +import com.android.launcher3.LauncherPrefs; import com.android.launcher3.QuickstepTransitionManager; import com.android.launcher3.R; import com.android.launcher3.Utilities; @@ -294,8 +297,12 @@ public class LauncherBackAnimationController { mBackTarget = appTarget; mInitialTouchPos.set(backEvent.getTouchX(), backEvent.getTouchY()); - // TODO(b/218916755): Offset start rectangle in multiwindow mode. mStartRect.set(appTarget.windowConfiguration.getMaxBounds()); + if (mLauncher.getDeviceProfile().isTaskbarPresent && enableTaskbarPinning() + && LauncherPrefs.get(mLauncher).get(TASKBAR_PINNING)) { + int insetBottom = mStartRect.bottom - appTarget.contentInsets.bottom; + mStartRect.set(mStartRect.left, mStartRect.top, mStartRect.right, insetBottom); + } mCurrentRect.set(mStartRect); addScrimLayer(); mTransaction.apply();