diff options
author | John Reck <jreck@google.com> | 2014-07-22 07:31:09 -0700 |
---|---|---|
committer | John Reck <jreck@google.com> | 2014-08-19 16:32:43 -0700 |
commit | 291161ac3815fb853fd6af21055d60f57a869608 (patch) | |
tree | 7f81afe67fabe6211678ca4ba46ba7c20ce30a4b /core/java/android/animation | |
parent | 03374ccc4c29117c8b672b740a0cede2fd8afb52 (diff) | |
download | frameworks_base-291161ac3815fb853fd6af21055d60f57a869608.zip frameworks_base-291161ac3815fb853fd6af21055d60f57a869608.tar.gz frameworks_base-291161ac3815fb853fd6af21055d60f57a869608.tar.bz2 |
Run RevealAnimator on RT
Bug: 16894195
Change-Id: I9acffa7aecc04c68b60c67f8f8a20aa225075a42
Diffstat (limited to 'core/java/android/animation')
-rw-r--r-- | core/java/android/animation/Animator.java | 1 | ||||
-rw-r--r-- | core/java/android/animation/RevealAnimator.java | 137 |
2 files changed, 6 insertions, 132 deletions
diff --git a/core/java/android/animation/Animator.java b/core/java/android/animation/Animator.java index 5f80ed7..3720c81 100644 --- a/core/java/android/animation/Animator.java +++ b/core/java/android/animation/Animator.java @@ -370,6 +370,7 @@ public abstract class Animator implements Cloneable { * @hide */ public void reverse() { + throw new IllegalStateException("Reverse is not supported"); } /** diff --git a/core/java/android/animation/RevealAnimator.java b/core/java/android/animation/RevealAnimator.java index e363a77..0f85f49 100644 --- a/core/java/android/animation/RevealAnimator.java +++ b/core/java/android/animation/RevealAnimator.java @@ -26,148 +26,21 @@ import android.view.View; * * @hide */ -public class RevealAnimator extends ValueAnimator { +public class RevealAnimator extends RenderNodeAnimator { private View mClipView; - private int mX, mY; - private float mStartRadius, mEndRadius; - private float mDelta; - private boolean mMayRunAsync; - - // If this is null, we are running on the UI thread driven by the base - // ValueAnimator class. If this is not null, forward requests on to this - // Animator instead. - private RenderNodeAnimator mRtAnimator; public RevealAnimator(View clipView, int x, int y, float startRadius, float endRadius) { + super(x, y, startRadius, endRadius); mClipView = clipView; - mStartRadius = startRadius; - mEndRadius = endRadius; - mDelta = endRadius - startRadius; - mX = x; - mY = y; - super.setValues(PropertyValuesHolder.ofFloat("radius", startRadius, endRadius)); + setTarget(mClipView); } @Override - void animateValue(float fraction) { - super.animateValue(fraction); - fraction = getAnimatedFraction(); - float radius = mStartRadius + (mDelta * fraction); - mClipView.setRevealClip(true, mX, mY, radius); - } - - @Override - protected void endAnimation(AnimationHandler handler) { + protected void onFinished() { mClipView.setRevealClip(false, 0, 0, 0); - super.endAnimation(handler); - } - - @Override - public void setAllowRunningAsynchronously(boolean mayRunAsync) { - mMayRunAsync = mayRunAsync; - } - - private boolean canRunAsync() { - if (!mMayRunAsync) { - return false; - } - if (mUpdateListeners != null && mUpdateListeners.size() > 0) { - return false; - } - // TODO: Have RNA support this - if (getRepeatCount() != 0) { - return false; - } - return true; - } - - @Override - public void start() { - if (mRtAnimator != null) { - mRtAnimator.end(); - mRtAnimator = null; - } - if (canRunAsync()) { - mRtAnimator = new RenderNodeAnimator(mX, mY, mStartRadius, mEndRadius); - mRtAnimator.setDuration(getDuration()); - mRtAnimator.setInterpolator(getInterpolator()); - mRtAnimator.setTarget(mClipView); - // TODO: Listeners - mRtAnimator.start(); - } else { - super.start(); - } - } - - @Override - public void cancel() { - if (mRtAnimator != null) { - mRtAnimator.cancel(); - } else { - super.cancel(); - } - } - - @Override - public void end() { - if (mRtAnimator != null) { - mRtAnimator.end(); - } else { - super.end(); - } + super.onFinished(); } - @Override - public void resume() { - if (mRtAnimator != null) { - // TODO: Support? Reject? - } else { - super.resume(); - } - } - - @Override - public void pause() { - if (mRtAnimator != null) { - // TODO: see resume() - } else { - super.pause(); - } - } - - @Override - public boolean isRunning() { - if (mRtAnimator != null) { - return mRtAnimator.isRunning(); - } else { - return super.isRunning(); - } - } - - @Override - public boolean isStarted() { - if (mRtAnimator != null) { - return mRtAnimator.isStarted(); - } else { - return super.isStarted(); - } - } - - @Override - public void reverse() { - if (mRtAnimator != null) { - // TODO support - } else { - super.reverse(); - } - } - - @Override - public RevealAnimator clone() { - RevealAnimator anim = (RevealAnimator) super.clone(); - anim.mRtAnimator = null; - return anim; - } } |