diff options
author | Chet Haase <chet@google.com> | 2010-10-14 07:02:04 -0700 |
---|---|---|
committer | Chet Haase <chet@google.com> | 2010-10-14 10:51:21 -0700 |
commit | 472b281d5cb4f5660df981a6c912266b9f5703fe (patch) | |
tree | ec2393d2d472bda0893e861e19722ab9f7cc3c27 /src/com/android/launcher2/InterruptibleInOutAnimator.java | |
parent | 564976a46ef02d665aa0e455ad7867746a0b5325 (diff) | |
download | android_packages_apps_Trebuchet-472b281d5cb4f5660df981a6c912266b9f5703fe.tar.gz android_packages_apps_Trebuchet-472b281d5cb4f5660df981a6c912266b9f5703fe.tar.bz2 android_packages_apps_Trebuchet-472b281d5cb4f5660df981a6c912266b9f5703fe.zip |
Updating code to use new non-generified animator APIs
Change-Id: Ie1928a22f774b226d90fa0918f61dba35d183dd6
Diffstat (limited to 'src/com/android/launcher2/InterruptibleInOutAnimator.java')
-rw-r--r-- | src/com/android/launcher2/InterruptibleInOutAnimator.java | 36 |
1 files changed, 21 insertions, 15 deletions
diff --git a/src/com/android/launcher2/InterruptibleInOutAnimator.java b/src/com/android/launcher2/InterruptibleInOutAnimator.java index 0b2f34561..bed7e6b28 100644 --- a/src/com/android/launcher2/InterruptibleInOutAnimator.java +++ b/src/com/android/launcher2/InterruptibleInOutAnimator.java @@ -18,6 +18,7 @@ package com.android.launcher2; import android.animation.Animator; import android.animation.AnimatorListenerAdapter; +import android.animation.ObjectAnimator; import android.animation.ValueAnimator; import android.util.Log; @@ -28,10 +29,11 @@ import android.util.Log; * be exactly reversed. Using this class, both the 'in' and the 'out' animation use the * interpolator in the same direction. */ -public class InterruptibleInOutAnimator extends ValueAnimator { +public class InterruptibleInOutAnimator { private long mOriginalDuration; - private Object mOriginalFromValue; - private Object mOriginalToValue; + private float mOriginalFromValue; + private float mOriginalToValue; + private ValueAnimator mAnimator; private boolean mFirstRun = true; @@ -41,41 +43,41 @@ public class InterruptibleInOutAnimator extends ValueAnimator { private static final int IN = 1; private static final int OUT = 2; + private int mDirection = STOPPED; - public InterruptibleInOutAnimator(long duration, Object fromValue, Object toValue) { - super(duration, fromValue, toValue); + public InterruptibleInOutAnimator(long duration, float fromValue, float toValue) { + mAnimator = ValueAnimator.ofFloat(fromValue, toValue).setDuration(duration); mOriginalDuration = duration; mOriginalFromValue = fromValue; mOriginalToValue = toValue; } private void animate(int direction) { - final long currentPlayTime = getCurrentPlayTime(); - final Object toValue = (direction == IN) ? mOriginalToValue : mOriginalFromValue; - final Object startValue = mFirstRun ? mOriginalFromValue : getAnimatedValue(); + final long currentPlayTime = mAnimator.getCurrentPlayTime(); + final float toValue = (direction == IN) ? mOriginalToValue : mOriginalFromValue; + final float startValue = mFirstRun ? mOriginalFromValue : + ((Float) mAnimator.getAnimatedValue()).floatValue(); // Make sure it's stopped before we modify any values cancel(); if (startValue != toValue) { mDirection = direction; - setDuration(mOriginalDuration - currentPlayTime); - setValues(startValue, toValue); - start(); + mAnimator.setDuration(mOriginalDuration - currentPlayTime); + mAnimator.setFloatValues(startValue, toValue); + mAnimator.start(); mFirstRun = false; } } - @Override public void cancel() { - super.cancel(); + mAnimator.cancel(); mDirection = STOPPED; } - @Override public void end() { - super.end(); + mAnimator.end(); mDirection = STOPPED; } @@ -112,4 +114,8 @@ public class InterruptibleInOutAnimator extends ValueAnimator { public Object getTag() { return mTag; } + + public ValueAnimator getAnimator() { + return mAnimator; + } } |