diff --git a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java index d251f3e25c..d65de518b4 100644 --- a/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java +++ b/quickstep/src/com/android/launcher3/QuickstepTransitionManager.java @@ -1416,7 +1416,7 @@ public class QuickstepTransitionManager implements OnDeviceProfileChangeListener animation.addListener(new AnimatorListenerAdapter() { @Override public void onAnimationStart(Animator animation) { - anim.start(mLauncher, velocityPxPerS); + anim.start(mLauncher, mDeviceProfile, velocityPxPerS); } }); return anim; diff --git a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java index 8f1872b11e..8dee10aa53 100644 --- a/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java +++ b/quickstep/src/com/android/quickstep/AbsSwipeUpHandler.java @@ -1330,7 +1330,8 @@ public abstract class AbsSwipeUpHandler, if (windowAnimation == null) { continue; } - windowAnimation.start(mContext, velocityPxPerMs); + DeviceProfile dp = mActivity == null ? null : mActivity.getDeviceProfile(); + windowAnimation.start(mContext, dp, velocityPxPerMs); mRunningWindowAnim[i] = RunningWindowAnim.wrap(windowAnimation); } homeAnimFactory.setSwipeVelocity(velocityPxPerMs.y); diff --git a/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java b/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java index b70c411196..fa7bc04b30 100644 --- a/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java +++ b/quickstep/src/com/android/quickstep/interaction/SwipeUpGestureTutorialController.java @@ -358,7 +358,7 @@ abstract class SwipeUpGestureTutorialController extends TutorialController { }; RectFSpringAnim windowAnim = createWindowAnimationToHome(startShift, homeAnimFactory)[0]; - windowAnim.start(mContext, velocityPxPerMs); + windowAnim.start(mContext, mDp, velocityPxPerMs); return windowAnim; } } diff --git a/quickstep/src/com/android/quickstep/util/RectFSpringAnim.java b/quickstep/src/com/android/quickstep/util/RectFSpringAnim.java index c4909de510..68739ba458 100644 --- a/quickstep/src/com/android/quickstep/util/RectFSpringAnim.java +++ b/quickstep/src/com/android/quickstep/util/RectFSpringAnim.java @@ -214,7 +214,7 @@ public class RectFSpringAnim extends ReleaseCheck { * @param context The activity context. * @param velocityPxPerMs Velocity of swipe in px/ms. */ - public void start(Context context, PointF velocityPxPerMs) { + public void start(Context context, @Nullable DeviceProfile profile, PointF velocityPxPerMs) { // Only tell caller that we ended if both x and y animations have ended. OnAnimationEndListener onXEndListener = ((animation, canceled, centerX, velocityX) -> { mRectXAnimEnded = true; @@ -252,7 +252,13 @@ public class RectFSpringAnim extends ReleaseCheck { float minVisibleChange = Math.abs(1f / mStartRect.height()); ResourceProvider rp = DynamicResource.provider(context); float damping = rp.getFloat(R.dimen.swipe_up_rect_scale_damping_ratio); - float stiffness = rp.getFloat(R.dimen.swipe_up_rect_scale_stiffness); + + // Increase the stiffness for devices where we want the window size to transform quicker. + boolean shouldUseHigherStiffness = profile != null + && (profile.isLandscape || profile.isTablet); + float stiffness = shouldUseHigherStiffness + ? rp.getFloat(R.dimen.swipe_up_rect_scale_higher_stiffness) + : rp.getFloat(R.dimen.swipe_up_rect_scale_stiffness); mRectScaleAnim = new SpringAnimation(this, RECT_SCALE_PROGRESS) .setSpring(new SpringForce(1f) diff --git a/res/values/config.xml b/res/values/config.xml index 3f94c34ad8..1415ed0c48 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -156,6 +156,7 @@ 0.75 200 + 400 1.5