am 761e298b: am b09a6670: Return Animator instead of ValueAnimator

* commit '761e298b11b31233067daf215ab788bb7042dc33':
  Return Animator instead of ValueAnimator
This commit is contained in:
John Reck
2014-07-20 18:02:59 +00:00
committed by Android Git Automerger
9 changed files with 44 additions and 56 deletions

View File

@@ -34414,7 +34414,7 @@ package android.view {
}
public final class ViewAnimationUtils {
method public static final android.animation.ValueAnimator createCircularReveal(android.view.View, int, int, float, float);
method public static final android.animation.Animator createCircularReveal(android.view.View, int, int, float, float);
}
public class ViewConfiguration {

View File

@@ -433,4 +433,39 @@ public abstract class Animator implements Cloneable {
*/
void onAnimationResume(Animator animation);
}
/**
* <p>Whether or not the Animator is allowed to run asynchronously off of
* the UI thread. This is a hint that informs the Animator that it is
* OK to run the animation off-thread, however the Animator may decide
* that it must run the animation on the UI thread anyway.
*
* <p>Regardless of whether or not the animation runs asynchronously, all
* listener callbacks will be called on the UI thread.</p>
*
* <p>To be able to use this hint the following must be true:</p>
* <ol>
* <li>The animator is immutable while {@link #isStarted()} is true. Requests
* to change duration, delay, etc... may be ignored.</li>
* <li>Lifecycle callback events may be asynchronous. Events such as
* {@link Animator.AnimatorListener#onAnimationEnd(Animator)} or
* {@link Animator.AnimatorListener#onAnimationRepeat(Animator)} may end up delayed
* as they must be posted back to the UI thread, and any actions performed
* by those callbacks (such as starting new animations) will not happen
* in the same frame.</li>
* <li>State change requests ({@link #cancel()}, {@link #end()}, {@link #reverse()}, etc...)
* may be asynchronous. It is guaranteed that all state changes that are
* performed on the UI thread in the same frame will be applied as a single
* atomic update, however that frame may be the current frame,
* the next frame, or some future frame. This will also impact the observed
* state of the Animator. For example, {@link #isStarted()} may still return true
* after a call to {@link #end()}. Using the lifecycle callbacks is preferred over
* queries to {@link #isStarted()}, {@link #isRunning()}, and {@link #isPaused()}
* for this reason.</li>
* </ol>
* @hide
*/
public void setAllowRunningAsynchronously(boolean mayRunAsync) {
// It is up to subclasses to support this, if they can.
}
}

View File

@@ -167,38 +167,9 @@ public class RevealAnimator extends ValueAnimator {
}
@Override
public ValueAnimator clone() {
public RevealAnimator clone() {
RevealAnimator anim = (RevealAnimator) super.clone();
anim.mRtAnimator = null;
return anim;
}
// ----------------------------------------
// All the things we don't allow
// ----------------------------------------
@Override
public void setValues(PropertyValuesHolder... values) {
throw new IllegalStateException("Cannot change the values of RevealAnimator");
}
@Override
public void setFloatValues(float... values) {
throw new IllegalStateException("Cannot change the values of RevealAnimator");
}
@Override
public void setIntValues(int... values) {
throw new IllegalStateException("Cannot change the values of RevealAnimator");
}
@Override
public void setObjectValues(Object... values) {
throw new IllegalStateException("Cannot change the values of RevealAnimator");
}
@Override
public void setEvaluator(TypeEvaluator value) {
throw new IllegalStateException("Cannot change the evaluator of RevealAnimator");
}
}

View File

@@ -1409,6 +1409,7 @@ public class ValueAnimator extends Animator {
* </ol>
* @hide
*/
@Override
public void setAllowRunningAsynchronously(boolean mayRunAsync) {
// It is up to subclasses to support this, if they can.
}

View File

@@ -10710,24 +10710,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
}
}
/**
* Returns a ValueAnimator which can animate a clearing circle.
* <p>
* The View is prevented from drawing within the circle, so the content
* behind the View shows through.
*
* @param centerX The x coordinate of the center of the animating circle.
* @param centerY The y coordinate of the center of the animating circle.
* @param startRadius The starting radius of the animating circle.
* @param endRadius The ending radius of the animating circle.
*
* @hide
*/
public final ValueAnimator createClearCircleAnimator(int centerX, int centerY,
float startRadius, float endRadius) {
return new RevealAnimator(this, centerX, centerY, startRadius, endRadius, true);
}
/**
* Returns the current StateListAnimator if exists.
*

View File

@@ -16,8 +16,8 @@
package android.view;
import android.animation.Animator;
import android.animation.RevealAnimator;
import android.animation.ValueAnimator;
/**
* Defines common utilities for working with View's animations.
@@ -36,7 +36,7 @@ public final class ViewAnimationUtils {
* @param startRadius The starting radius of the animating circle.
* @param endRadius The ending radius of the animating circle.
*/
public static final ValueAnimator createCircularReveal(View view,
public static final Animator createCircularReveal(View view,
int centerX, int centerY, float startRadius, float endRadius) {
return new RevealAnimator(view, centerX, centerY, startRadius, endRadius, false);
}

View File

@@ -19,7 +19,6 @@ package com.android.systemui.qs;
import android.animation.Animator;
import android.animation.Animator.AnimatorListener;
import android.animation.AnimatorListenerAdapter;
import android.animation.ValueAnimator;
import android.view.View;
import android.view.ViewAnimationUtils;
@@ -28,7 +27,7 @@ public class CircularClipper {
private final View mTarget;
private ValueAnimator mAnimator;
private Animator mAnimator;
public CircularClipper(View target) {
mTarget = target;

View File

@@ -244,7 +244,7 @@ public abstract class ActivatableNotificationView extends ExpandableOutlineView
int widthHalf = mBackgroundNormal.getWidth()/2;
int heightHalf = mBackgroundNormal.getActualHeight()/2;
float radius = (float) Math.sqrt(widthHalf*widthHalf + heightHalf*heightHalf);
ValueAnimator animator =
Animator animator =
ViewAnimationUtils.createCircularReveal(mBackgroundNormal,
widthHalf, heightHalf, 0, radius);
mBackgroundNormal.setVisibility(View.VISIBLE);

View File

@@ -16,7 +16,7 @@
package com.android.test.hwui;
import android.animation.ValueAnimator;
import android.animation.Animator;
import android.app.Activity;
import android.content.Context;
import android.graphics.Canvas;
@@ -54,7 +54,7 @@ public class RevealActivity extends Activity implements OnClickListener {
@Override
public void onClick(View view) {
ValueAnimator animator = ViewAnimationUtils.createCircularReveal(view,
Animator animator = ViewAnimationUtils.createCircularReveal(view,
view.getWidth() / 2, view.getHeight() / 2,
0, Math.max(view.getWidth(), view.getHeight()));
animator.setDuration(DURATION);