diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index 668567eae4..aa9e27212a 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -1560,7 +1560,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener RemoteAnimationTarget[] wallpaperTargets, boolean fromUnlock, RectF startRect, - float startWindowCornerRadius) { + float startWindowCornerRadius, + boolean fromPredictiveBack) { AnimatorSet anim = null; RectFSpringAnim rectFSpringAnim = null; @@ -1594,7 +1595,11 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener rectFSpringAnim = getClosingWindowAnimators( anim, appTargets, launcherView, velocity, startRect, startWindowCornerRadius); - if (!mLauncher.isInState(LauncherState.ALL_APPS)) { + if (mLauncher.isInState(LauncherState.ALL_APPS)) { + // Skip scaling all apps, otherwise FloatingIconView will get wrong + // layout bounds. + skipAllAppsScale = true; + } else if (!fromPredictiveBack) { anim.play(new StaggeredWorkspaceAnim(mLauncher, velocity.y, true /* animateOverviewScrim */, launcherView).getAnimators()); @@ -1606,10 +1611,6 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener // We play StaggeredWorkspaceAnim as a part of the closing window animation. playWorkspaceReveal = false; - } else { - // Skip scaling all apps, otherwise FloatingIconView will get wrong - // layout bounds. - skipAllAppsScale = true; } } else { anim.play(getFallbackClosingWindowAnimators(appTargets)); @@ -1686,7 +1687,8 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener new RectF(getWindowTargetBounds(appTargets, getRotationChange(appTargets))); Pair pair = createWallpaperOpenAnimations( appTargets, wallpaperTargets, mFromUnlock, windowTargetBounds, - QuickStepContract.getWindowCornerRadius(mLauncher)); + QuickStepContract.getWindowCornerRadius(mLauncher), + false /* fromPredictiveBack */); mLauncher.clearForceInvisibleFlag(INVISIBLE_ALL); result.setAnimation(pair.second, mLauncher); diff --git a/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java b/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java index 3edbbdf983..03042c95fb 100644 --- a/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java +++ b/quickstep/src/com/android/quickstep/LauncherBackAnimationController.java @@ -290,7 +290,8 @@ public class LauncherBackAnimationController { new RemoteAnimationTarget[0], false /* fromUnlock */, mCurrentRect, - cornerRadius); + cornerRadius, + mBackInProgress /* fromPredictiveBack */); startTransitionAnimations(pair.first, pair.second); mLauncher.clearForceInvisibleFlag(INVISIBLE_ALL); }