From aee792403d4f21261416f93ec0d931a4ee84df4b Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Fri, 26 Jun 2020 10:11:24 -0700 Subject: [PATCH] Fix velocity in StaggeredWorkspaceAnimation. * Velocity should match the direction of the spring values. (Swipe direction is upwards, but icons move downwards on screen). * Remove additional conversion to pxPerS since getDimension already does that. Bug: 160003774 Change-Id: I12912edb2354c4a30c538da6ca3789c46d82b94d (cherry picked from commit 54003963d83208c3f3579d27f5eebe2097cb9c3f) --- .../com/android/quickstep/util/StaggeredWorkspaceAnim.java | 6 ++++-- .../launcher3/QuickstepAppTransitionManagerImpl.java | 7 +------ res/values/config.xml | 2 +- 3 files changed, 6 insertions(+), 9 deletions(-) diff --git a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/StaggeredWorkspaceAnim.java b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/StaggeredWorkspaceAnim.java index 3cafd423ca..41203319b1 100644 --- a/quickstep/recents_ui_overrides/src/com/android/quickstep/util/StaggeredWorkspaceAnim.java +++ b/quickstep/recents_ui_overrides/src/com/android/quickstep/util/StaggeredWorkspaceAnim.java @@ -205,13 +205,15 @@ public class StaggeredWorkspaceAnim { ResourceProvider rp = DynamicResource.provider(v.getContext()); float stiffness = rp.getFloat(R.dimen.staggered_stiffness); float damping = rp.getFloat(R.dimen.staggered_damping_ratio); + float endTransY = 0; + float springVelocity = Math.abs(mVelocity) * Math.signum(endTransY - mSpringTransY); ValueAnimator springTransY = new SpringAnimationBuilder(v.getContext()) .setStiffness(stiffness) .setDampingRatio(damping) .setMinimumVisibleChange(1f) .setStartValue(mSpringTransY) - .setEndValue(0) - .setStartVelocity(mVelocity) + .setEndValue(endTransY) + .setStartVelocity(springVelocity) .build(v, VIEW_TRANSLATE_Y); springTransY.setStartDelay(startDelay); springTransY.addListener(new AnimatorListenerAdapter() { diff --git a/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java b/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java index fe7b946ef4..bd97f650dd 100644 --- a/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java +++ b/quickstep/src/com/android/launcher3/QuickstepAppTransitionManagerImpl.java @@ -16,8 +16,6 @@ package com.android.launcher3; -import static android.util.TypedValue.COMPLEX_UNIT_DIP; - import static com.android.launcher3.BaseActivity.INVISIBLE_ALL; import static com.android.launcher3.BaseActivity.INVISIBLE_BY_APP_TRANSITIONS; import static com.android.launcher3.BaseActivity.INVISIBLE_BY_PENDING_FLAGS; @@ -62,7 +60,6 @@ import android.os.CancellationSignal; import android.os.Handler; import android.os.Looper; import android.util.Pair; -import android.util.TypedValue; import android.view.View; import androidx.annotation.NonNull; @@ -875,10 +872,8 @@ public abstract class QuickstepAppTransitionManagerImpl extends LauncherAppTrans } }); } else { - float velocityDpPerS = DynamicResource.provider(mLauncher) + float velocityPxPerS = DynamicResource.provider(mLauncher) .getDimension(R.dimen.unlock_staggered_velocity_dp_per_s); - float velocityPxPerS = TypedValue.applyDimension(COMPLEX_UNIT_DIP, - velocityDpPerS, mLauncher.getResources().getDisplayMetrics()); anim.play(new StaggeredWorkspaceAnim(mLauncher, velocityPxPerS, false) .getAnimators()); } diff --git a/res/values/config.xml b/res/values/config.xml index ca253259e4..75fcc907db 100644 --- a/res/values/config.xml +++ b/res/values/config.xml @@ -142,7 +142,7 @@ 0.7 150 - 3dp + 4dp 0.7 200