diff options
author | Jon Miranda <jonmiranda@google.com> | 2019-01-16 15:01:03 -0800 |
---|---|---|
committer | Jon Miranda <jonmiranda@google.com> | 2019-01-16 15:15:56 -0800 |
commit | 60adc3fb83484b656c24950429fb2f2cf2ecebc2 (patch) | |
tree | 5740d70558af2cad328514e8c66f393a3b327ad4 /src/com/android/launcher3/allapps/AllAppsTransitionController.java | |
parent | 982ff0714f44ab33554c07f8c50eb3d4c124c17f (diff) | |
download | android_packages_apps_Trebuchet-60adc3fb83484b656c24950429fb2f2cf2ecebc2.tar.gz android_packages_apps_Trebuchet-60adc3fb83484b656c24950429fb2f2cf2ecebc2.tar.bz2 android_packages_apps_Trebuchet-60adc3fb83484b656c24950429fb2f2cf2ecebc2.zip |
Generalize SpringObjectAnimator.
This is in preparation for adding more springs to the state transitions.
Bug: 111698021
Change-Id: I32cd7894e940dae00895799280b244d68400d374
Diffstat (limited to 'src/com/android/launcher3/allapps/AllAppsTransitionController.java')
-rw-r--r-- | src/com/android/launcher3/allapps/AllAppsTransitionController.java | 46 |
1 files changed, 7 insertions, 39 deletions
diff --git a/src/com/android/launcher3/allapps/AllAppsTransitionController.java b/src/com/android/launcher3/allapps/AllAppsTransitionController.java index 962c25bf5..e8e93febb 100644 --- a/src/com/android/launcher3/allapps/AllAppsTransitionController.java +++ b/src/com/android/launcher3/allapps/AllAppsTransitionController.java @@ -23,17 +23,16 @@ import com.android.launcher3.Launcher; import com.android.launcher3.LauncherState; import com.android.launcher3.LauncherStateManager.AnimationConfig; import com.android.launcher3.LauncherStateManager.StateHandler; +import com.android.launcher3.ProgressInterface; import com.android.launcher3.R; import com.android.launcher3.anim.AnimationSuccessListener; import com.android.launcher3.anim.AnimatorSetBuilder; import com.android.launcher3.anim.SpringObjectAnimator; import com.android.launcher3.anim.PropertySetter; -import com.android.launcher3.anim.SpringObjectAnimator.SpringProperty; import com.android.launcher3.util.Themes; import com.android.launcher3.views.ScrimView; import androidx.dynamicanimation.animation.FloatPropertyCompat; -import androidx.dynamicanimation.animation.SpringAnimation; /** * Handles AllApps view transition. @@ -45,7 +44,8 @@ import androidx.dynamicanimation.animation.SpringAnimation; * If release velocity < THRES1, snap according to either top or bottom depending on whether it's * closer to top or closer to the page indicator. */ -public class AllAppsTransitionController implements StateHandler, OnDeviceProfileChangeListener { +public class AllAppsTransitionController implements StateHandler, OnDeviceProfileChangeListener, + ProgressInterface { public static final Property<AllAppsTransitionController, Float> ALL_APPS_PROGRESS = new Property<AllAppsTransitionController, Float>(Float.class, "allAppsProgress") { @@ -74,40 +74,6 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil } }; - /** - * Property that either sets the progress directly or animates the progress via a spring. - */ - public static class AllAppsSpringProperty extends - SpringProperty<AllAppsTransitionController, Float> { - - SpringAnimation mSpring; - boolean useSpring = false; - - public AllAppsSpringProperty(SpringAnimation spring) { - super(Float.class, "allAppsSpringProperty"); - mSpring = spring; - } - - @Override - public Float get(AllAppsTransitionController controller) { - return controller.getProgress(); - } - - @Override - public void set(AllAppsTransitionController controller, Float progress) { - if (useSpring) { - mSpring.animateToFinalPosition(progress); - } else { - controller.setProgress(progress); - } - } - - @Override - public void switchToSpring() { - useSpring = true; - } - } - private AllAppsContainerView mAppsView; private ScrimView mScrimView; @@ -161,6 +127,7 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil * @see #setState(LauncherState) * @see #setStateWithAnimation(LauncherState, AnimatorSetBuilder, AnimationConfig) */ + @Override public void setProgress(float progress) { mProgress = progress; mScrimView.setProgress(progress); @@ -185,6 +152,7 @@ public class AllAppsTransitionController implements StateHandler, OnDeviceProfil } } + @Override public float getProgress() { return mProgress; } @@ -223,8 +191,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, 1f / mShiftRange, mProgress, - targetProgress); + Animator anim = new SpringObjectAnimator<>(this, ALL_APPS_PROGRESS_SPRING, + "allAppsSpringFromAATC", 1f / mShiftRange, mProgress, targetProgress); anim.setDuration(config.duration); anim.setInterpolator(builder.getInterpolator(ANIM_VERTICAL_PROGRESS, interpolator)); anim.addListener(getProgressAnimatorListener()); |