diff --git a/api/current.txt b/api/current.txt index ef18bf9f05f6a..c954a74e7aefb 100644 --- a/api/current.txt +++ b/api/current.txt @@ -2876,6 +2876,7 @@ package android.animation { method public android.animation.TimeInterpolator getInterpolator(); method public java.util.ArrayList 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 { diff --git a/api/system-current.txt b/api/system-current.txt index 0b216bdddb301..2a22f7b6d8a25 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -2975,6 +2975,7 @@ package android.animation { method public android.animation.TimeInterpolator getInterpolator(); method public java.util.ArrayList 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 { diff --git a/core/java/android/animation/Animator.java b/core/java/android/animation/Animator.java index d331c2a066c49..844063c04e83c 100644 --- a/core/java/android/animation/Animator.java +++ b/core/java/android/animation/Animator.java @@ -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; + } } /** diff --git a/core/java/android/animation/AnimatorSet.java b/core/java/android/animation/AnimatorSet.java index d444638c715a5..1ab55dd7c1d93 100644 --- a/core/java/android/animation/AnimatorSet.java +++ b/core/java/android/animation/AnimatorSet.java @@ -1030,9 +1030,6 @@ public final class AnimatorSet extends Animator { } } - /** - * @hide - */ @Override public long getTotalDuration() { updateAnimatorsDuration(); diff --git a/core/java/android/animation/ValueAnimator.java b/core/java/android/animation/ValueAnimator.java index 4b3df30c778db..6f65889c3b534 100644 --- a/core/java/android/animation/ValueAnimator.java +++ b/core/java/android/animation/ValueAnimator.java @@ -536,9 +536,6 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio return mDuration; } - /** - * @hide - */ @Override public long getTotalDuration() { if (mRepeatCount == INFINITE) { diff --git a/core/java/android/view/RenderNodeAnimator.java b/core/java/android/view/RenderNodeAnimator.java index 2a3756d6b7b3e..7747580892f1b 100644 --- a/core/java/android/view/RenderNodeAnimator.java +++ b/core/java/android/view/RenderNodeAnimator.java @@ -336,9 +336,6 @@ public class RenderNodeAnimator extends Animator { return mUnscaledDuration; } - /** - * @hide - */ @Override public long getTotalDuration() { return mUnscaledDuration + mUnscaledStartDelay;