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

Commit 8b7c99cc authored by Doris Liu's avatar Doris Liu
Browse files

New public API for calculating the total duration of an animation

Total duration is the total amount of time an animation takes from
start to finish. It include start delay (if any), child animation
sequence, accounting for repeat.

Change-Id: Id5b36a63c02e25586aefd38612aa5867492e1adb
parent f86aed1e
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -2876,6 +2876,7 @@ package android.animation {
    method public android.animation.TimeInterpolator getInterpolator();
    method public java.util.ArrayList<android.animation.Animator.AnimatorListener> getListeners();
    method public abstract long getStartDelay();
    method public long getTotalDuration();
    method public boolean isPaused();
    method public abstract boolean isRunning();
    method public boolean isStarted();
@@ -2891,6 +2892,7 @@ package android.animation {
    method public void setupEndValues();
    method public void setupStartValues();
    method public void start();
    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
  }
  public static abstract interface Animator.AnimatorListener {
+2 −0
Original line number Diff line number Diff line
@@ -2975,6 +2975,7 @@ package android.animation {
    method public android.animation.TimeInterpolator getInterpolator();
    method public java.util.ArrayList<android.animation.Animator.AnimatorListener> getListeners();
    method public abstract long getStartDelay();
    method public long getTotalDuration();
    method public boolean isPaused();
    method public abstract boolean isRunning();
    method public boolean isStarted();
@@ -2990,6 +2991,7 @@ package android.animation {
    method public void setupEndValues();
    method public void setupStartValues();
    method public void start();
    field public static final long DURATION_INFINITE = -1L; // 0xffffffffffffffffL
  }
  public static abstract interface Animator.AnimatorListener {
+10 −4
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ public abstract class Animator implements Cloneable {

    /**
     * The value used to indicate infinite duration (e.g. when Animators repeat infinitely).
     * @hide
     */
    public static final long DURATION_INFINITE = -1;
    /**
@@ -191,11 +190,18 @@ public abstract class Animator implements Cloneable {
    /**
     * Gets the total duration of the animation, accounting for animation sequences, start delay,
     * and repeating. Return {@link #DURATION_INFINITE} if the duration is infinite.
     * @hide
     * TODO: Unhide
     *
     * @return  Total time an animation takes to finish, starting from the time {@link #start()}
     *          is called. {@link #DURATION_INFINITE} will be returned if the animation or any
     *          child animation repeats infinite times.
     */
    public long getTotalDuration() {
        return getStartDelay() + getDuration();
        long duration = getDuration();
        if (duration == DURATION_INFINITE) {
            return DURATION_INFINITE;
        } else {
            return getStartDelay() + duration;
        }
    }

    /**
+0 −3
Original line number Diff line number Diff line
@@ -1030,9 +1030,6 @@ public final class AnimatorSet extends Animator {
        }
    }

    /**
     * @hide
     */
    @Override
    public long getTotalDuration() {
        updateAnimatorsDuration();
+0 −3
Original line number Diff line number Diff line
@@ -536,9 +536,6 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio
        return mDuration;
    }

    /**
     * @hide
     */
    @Override
    public long getTotalDuration() {
        if (mRepeatCount == INFINITE) {
Loading