From 291161ac3815fb853fd6af21055d60f57a869608 Mon Sep 17 00:00:00 2001 From: John Reck Date: Tue, 22 Jul 2014 07:31:09 -0700 Subject: Run RevealAnimator on RT Bug: 16894195 Change-Id: I9acffa7aecc04c68b60c67f8f8a20aa225075a42 --- core/java/android/animation/Animator.java | 1 + core/java/android/animation/RevealAnimator.java | 137 +----------------------- 2 files changed, 6 insertions(+), 132 deletions(-) (limited to 'core/java/android/animation') 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; - } } -- cgit v1.1