diff options
author | TreeHugger Robot <treehugger-gerrit@google.com> | 2019-01-29 20:35:02 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2019-01-29 20:35:02 +0000 |
commit | 5aabc55780154ec72434f25e5f8269e442a4ebc4 (patch) | |
tree | 1191622e32754fbd5ba8bf9385781b9c74c175ae /src | |
parent | 8d4430a1d74f98986648dfd8c46a3548fa605434 (diff) | |
parent | 86f6c449a72707d48a04613ed320c06040280dac (diff) | |
download | android_packages_apps_Trebuchet-5aabc55780154ec72434f25e5f8269e442a4ebc4.tar.gz android_packages_apps_Trebuchet-5aabc55780154ec72434f25e5f8269e442a4ebc4.tar.bz2 android_packages_apps_Trebuchet-5aabc55780154ec72434f25e5f8269e442a4ebc4.zip |
Merge "Add springs for recents dismiss animations." into ub-launcher3-master
Diffstat (limited to 'src')
3 files changed, 42 insertions, 22 deletions
diff --git a/src/com/android/launcher3/LauncherAnimUtils.java b/src/com/android/launcher3/LauncherAnimUtils.java index aad344976..04f2b5276 100644 --- a/src/com/android/launcher3/LauncherAnimUtils.java +++ b/src/com/android/launcher3/LauncherAnimUtils.java @@ -91,4 +91,24 @@ public class LauncherAnimUtils { lp.height = height; } }; + + public static class ViewProgressProperty implements ProgressInterface { + View mView; + Property<View, Float> mProperty; + + public ViewProgressProperty(View view, Property<View, Float> property) { + mView = view; + mProperty = property; + } + + @Override + public void setProgress(float progress) { + mProperty.set(mView, progress); + } + + @Override + public float getProgress() { + return mProperty.get(mView); + } + } } diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index e8e93febb..bcb5eec61 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -47,6 +47,9 @@ import androidx.dynamicanimation.animation.FloatPropertyCompat; public class AllAppsTransitionController implements StateHandler, OnDeviceProfileChangeListener, ProgressInterface { + public static final float SPRING_DAMPING_RATIO = 0.9f; + public static final float SPRING_STIFFNESS = 600f; + public static final Property<AllAppsTransitionController, Float> ALL_APPS_PROGRESS = new Property<AllAppsTransitionController, Float>(Float.class, "allAppsProgress") { @@ -61,19 +64,6 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil } }; - public static final FloatPropertyCompat<AllAppsTransitionController> ALL_APPS_PROGRESS_SPRING - = new FloatPropertyCompat<AllAppsTransitionController>("allAppsProgressSpring") { - @Override - public float getValue(AllAppsTransitionController controller) { - return controller.mProgress; - } - - @Override - public void setValue(AllAppsTransitionController controller, float progress) { - controller.setProgress(progress); - } - }; - private AllAppsContainerView mAppsView; private ScrimView mScrimView; @@ -191,8 +181,8 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil Interpolator interpolator = config.userControlled ? LINEAR : toState == OVERVIEW ? builder.getInterpolator(ANIM_OVERVIEW_SCALE, FAST_OUT_SLOW_IN) : FAST_OUT_SLOW_IN; - Animator anim = new SpringObjectAnimator<>(this, ALL_APPS_PROGRESS_SPRING, - "allAppsSpringFromAATC", 1f / mShiftRange, mProgress, targetProgress); + Animator anim = new SpringObjectAnimator<>(this, "allAppsSpringFromAATC", 1f / mShiftRange, + SPRING_DAMPING_RATIO, SPRING_STIFFNESS, mProgress, targetProgress); anim.setDuration(config.duration); anim.setInterpolator(builder.getInterpolator(ANIM_VERTICAL_PROGRESS, interpolator)); anim.addListener(getProgressAnimatorListener()); diff --git a/src/com/android/launcher3/anim/SpringObjectAnimator.java b/src/com/android/launcher3/anim/SpringObjectAnimator.java index e4aec107d..4f45c051b 100644 --- a/src/com/android/launcher3/anim/SpringObjectAnimator.java +++ b/src/com/android/launcher3/anim/SpringObjectAnimator.java @@ -55,17 +55,27 @@ public class SpringObjectAnimator<T extends ProgressInterface> extends ValueAnim private boolean mAnimatorEnded = false; private boolean mEnded = false; - private static final float SPRING_DAMPING_RATIO = 0.9f; - private static final float SPRING_STIFFNESS = 600f; + private static final FloatPropertyCompat<ProgressInterface> sFloatProperty = + new FloatPropertyCompat<ProgressInterface>("springObjectAnimator") { + @Override + public float getValue(ProgressInterface object) { + return object.getProgress(); + } + + @Override + public void setValue(ProgressInterface object, float progress) { + object.setProgress(progress); + } + }; - public SpringObjectAnimator(T object, FloatPropertyCompat<T> floatProperty, - String name, float minimumVisibleChange, float... values) { + public SpringObjectAnimator(T object, String name, float minimumVisibleChange, float damping, + float stiffness, float... values) { mObject = object; - mSpring = new SpringAnimation(object, floatProperty); + mSpring = new SpringAnimation(object, sFloatProperty); mSpring.setMinimumVisibleChange(minimumVisibleChange); mSpring.setSpring(new SpringForce(0) - .setDampingRatio(SPRING_DAMPING_RATIO) - .setStiffness(SPRING_STIFFNESS)); + .setDampingRatio(damping) + .setStiffness(stiffness)); mSpring.setStartVelocity(0.01f); mProperty = new SpringProperty<T>(name, mSpring); mObjectAnimator = ObjectAnimator.ofFloat(object, mProperty, values); |