Merge "Skip to end for 0-duration animation" into nyc-dev

am: 1dfe35b

* commit '1dfe35b8a797f921d095beeaf1018f7a987e8343':
  Skip to end for 0-duration animation

Change-Id: I22f0cbf98b69b24b07de001bfebb86ad06c2170b
This commit is contained in:
Doris Liu
2016-04-13 23:13:21 +00:00
committed by android-build-merger

View File

@@ -1200,13 +1200,17 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio
boolean animateBasedOnTime(long currentTime) {
boolean done = false;
if (mRunning) {
final float fraction = getScaledDuration() > 0 ?
(float)(currentTime - mStartTime) / getScaledDuration() : 1f;
final long scaledDuration = getScaledDuration();
final float fraction = scaledDuration > 0 ?
(float)(currentTime - mStartTime) / scaledDuration : 1f;
final float lastFraction = mOverallFraction;
final boolean newIteration = (int) fraction > (int) lastFraction;
final boolean lastIterationFinished = (fraction >= mRepeatCount + 1) &&
(mRepeatCount != INFINITE);
if (newIteration && !lastIterationFinished) {
if (scaledDuration == 0) {
// 0 duration animator, ignore the repeat count and skip to the end
done = true;
} else if (newIteration && !lastIterationFinished) {
// Time to repeat
if (mListeners != null) {
int numListeners = mListeners.size();