summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTreeHugger Robot <treehugger-gerrit@google.com>2019-01-29 20:35:02 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2019-01-29 20:35:02 +0000
commit5aabc55780154ec72434f25e5f8269e442a4ebc4 (patch)
tree1191622e32754fbd5ba8bf9385781b9c74c175ae /src
parent8d4430a1d74f98986648dfd8c46a3548fa605434 (diff)
parent86f6c449a72707d48a04613ed320c06040280dac (diff)
downloadandroid_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')
-rw-r--r--src/com/android/launcher3/LauncherAnimUtils.java20
-rw-r--r--src/com/android/launcher3/allapps/AllAppsTransitionController.java20
-rw-r--r--src/com/android/launcher3/anim/SpringObjectAnimator.java24
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);