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
This commit is contained in:
@@ -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 {
|
||||
|
||||
@@ -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 {
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -1030,9 +1030,6 @@ public final class AnimatorSet extends Animator {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
@Override
|
||||
public long getTotalDuration() {
|
||||
updateAnimatorsDuration();
|
||||
|
||||
@@ -536,9 +536,6 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio
|
||||
return mDuration;
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
@Override
|
||||
public long getTotalDuration() {
|
||||
if (mRepeatCount == INFINITE) {
|
||||
|
||||
@@ -336,9 +336,6 @@ public class RenderNodeAnimator extends Animator {
|
||||
return mUnscaledDuration;
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
@Override
|
||||
public long getTotalDuration() {
|
||||
return mUnscaledDuration + mUnscaledStartDelay;
|
||||
|
||||
Reference in New Issue
Block a user