Merge "Properly notifies listener when an animation is cancelled. Bug: #2428005."

This commit is contained in:
Romain Guy
2010-02-09 13:21:09 -08:00
committed by Android (Google) Code Review
3 changed files with 35 additions and 0 deletions

View File

@@ -181293,6 +181293,17 @@
<parameter name="t" type="android.view.animation.Transformation">
</parameter>
</method>
<method name="cancel"
return="void"
abstract="false"
native="false"
synchronized="false"
static="false"
final="false"
deprecated="not deprecated"
visibility="public"
>
</method>
<method name="computeDurationHint"
return="long"
abstract="false"

View File

@@ -8281,6 +8281,9 @@ public class View implements Drawable.Callback, KeyEvent.Callback, Accessibility
* Cancels any animations for this view.
*/
public void clearAnimation() {
if (mCurrentAnimation != null) {
mCurrentAnimation.cancel();
}
mCurrentAnimation = null;
}

View File

@@ -255,6 +255,27 @@ public abstract class Animation implements Cloneable {
mOneMoreTime = true;
}
/**
* Cancel the animation. Cancelling an animation invokes the animation
* listener, if set, to notify the end of the animation.
*
* If you cancel an animation manually, you must call {@link #reset()}
* before starting the animation again.
*
* @see #reset()
* @see #start()
* @see #startNow()
*/
public void cancel() {
if (mStarted && !mEnded) {
if (mListener != null) mListener.onAnimationEnd(this);
mEnded = true;
}
// Make sure we move the animation to the end
mStartTime = Long.MIN_VALUE;
mMore = mOneMoreTime = false;
}
/**
* Whether or not the animation has been initialized.
*