Makes spring variable dynamic resources so that they can be changed via plugin
Bug: 147302669 Change-Id: Ia4e74ff46a4d8338a56ea75ed826b69102c42d93
This commit is contained in:
@@ -26,11 +26,13 @@ import android.view.ViewConfiguration;
|
||||
import android.view.animation.AnimationUtils;
|
||||
import android.view.animation.Interpolator;
|
||||
|
||||
import androidx.dynamicanimation.animation.DynamicAnimation;
|
||||
import androidx.dynamicanimation.animation.FloatPropertyCompat;
|
||||
import androidx.dynamicanimation.animation.SpringAnimation;
|
||||
import androidx.dynamicanimation.animation.SpringForce;
|
||||
|
||||
import com.android.launcher3.R;
|
||||
import com.android.systemui.plugins.ResourceProvider;
|
||||
|
||||
/**
|
||||
* Based on {@link android.widget.OverScroller} supporting only 1-d scrolling and with more
|
||||
* customization options.
|
||||
@@ -425,6 +427,7 @@ public class OverScroller {
|
||||
// Current state of the animation.
|
||||
private int mState = SPLINE;
|
||||
|
||||
private Context mContext;
|
||||
private SpringAnimation mSpring;
|
||||
|
||||
// Constant gravity value, used in the deceleration phase.
|
||||
@@ -500,6 +503,7 @@ public class OverScroller {
|
||||
}
|
||||
|
||||
SplineOverScroller(Context context) {
|
||||
mContext = context;
|
||||
mFinished = true;
|
||||
final float ppi = context.getResources().getDisplayMetrics().density * 160.0f;
|
||||
mPhysicalCoeff = SensorManager.GRAVITY_EARTH // g (m/s^2)
|
||||
@@ -560,9 +564,12 @@ public class OverScroller {
|
||||
}
|
||||
mSpring = new SpringAnimation(this, SPRING_PROPERTY);
|
||||
|
||||
ResourceProvider rp = DynamicResource.provider(mContext);
|
||||
float stiffness = rp.getFloat(R.dimen.horizontal_spring_stiffness);
|
||||
float damping = rp.getFloat(R.dimen.horizontal_spring_damping_ratio);
|
||||
mSpring.setSpring(new SpringForce(mFinal)
|
||||
.setStiffness(SpringForce.STIFFNESS_LOW)
|
||||
.setDampingRatio(SpringForce.DAMPING_RATIO_LOW_BOUNCY));
|
||||
.setStiffness(stiffness)
|
||||
.setDampingRatio(damping));
|
||||
mSpring.setStartVelocity(velocity);
|
||||
mSpring.animateToFinalPosition(mFinal);
|
||||
mSpring.addEndListener((animation, canceled, value, velocity1) -> {
|
||||
|
||||
Reference in New Issue
Block a user