summaryrefslogtreecommitdiffstats
path: root/core/java/android/animation
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2014-07-22 07:31:09 -0700
committerJohn Reck <jreck@google.com>2014-08-19 16:32:43 -0700
commit291161ac3815fb853fd6af21055d60f57a869608 (patch)
tree7f81afe67fabe6211678ca4ba46ba7c20ce30a4b /core/java/android/animation
parent03374ccc4c29117c8b672b740a0cede2fd8afb52 (diff)
downloadframeworks_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.java1
-rw-r--r--core/java/android/animation/RevealAnimator.java137
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;
- }
}