Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8368ef0b authored by Romain Guy's avatar Romain Guy Committed by Jim Miller
Browse files

Manual merge of 40080 DO NOT MERGE

Properly notifies listener when an animation is cancelled.
Bug: #2428005.
parent 5d72a8dd
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -8191,6 +8191,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;
    }

+22 −0
Original line number Diff line number Diff line
@@ -255,6 +255,28 @@ 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() 
     * @hide
     */
    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.
     *