Merge "[GH] perf: reduce double compute" into androidx-master-dev
diff --git a/dynamic-animation/dynamic-animation/src/main/java/androidx/dynamicanimation/animation/FlingAnimation.java b/dynamic-animation/dynamic-animation/src/main/java/androidx/dynamicanimation/animation/FlingAnimation.java
index 5be3b9b..e42d06a 100644
--- a/dynamic-animation/dynamic-animation/src/main/java/androidx/dynamicanimation/animation/FlingAnimation.java
+++ b/dynamic-animation/dynamic-animation/src/main/java/androidx/dynamicanimation/animation/FlingAnimation.java
@@ -215,8 +215,7 @@
 
         MassState updateValueAndVelocity(float value, float velocity, long deltaT) {
             mMassState.mVelocity = (float) (velocity * Math.exp((deltaT / 1000f) * mFriction));
-            mMassState.mValue = (float) (value - velocity / mFriction
-                    + velocity / mFriction * Math.exp(mFriction * deltaT / 1000f));
+            mMassState.mValue = (float) (value + (mMassState.mVelocity - velocity) / mFriction);
             if (isAtEquilibrium(mMassState.mValue, mMassState.mVelocity)) {
                 mMassState.mVelocity = 0f;
             }