Merge "Remove animation listener while paused." into nyc-dev

am: 7d09ca79f1

* commit '7d09ca79f158e1fc48a4531b027a5dc549c84084':
  Remove animation listener while paused.
This commit is contained in:
George Mount
2016-03-03 22:03:34 +00:00
committed by android-build-merger
2 changed files with 17 additions and 5 deletions

View File

@@ -1029,8 +1029,16 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio
@Override
public void resume() {
if (mPaused) {
if (Looper.myLooper() == null) {
throw new AndroidRuntimeException("Animators may only be resumed from the same " +
"thread that the animator was started on");
}
if (mPaused && !mResumed) {
mResumed = true;
if (mPauseTime > 0) {
AnimationHandler handler = AnimationHandler.getInstance();
handler.addAnimationFrameCallback(this, 0);
}
}
super.resume();
}
@@ -1235,9 +1243,8 @@ public class ValueAnimator extends Animator implements AnimationHandler.Animatio
}
mLastFrameTime = frameTime;
if (mPaused) {
if (mPauseTime < 0) {
mPauseTime = frameTime;
}
mPauseTime = frameTime;
handler.removeCallback(this);
return;
} else if (mResumed) {
mResumed = false;

View File

@@ -328,7 +328,12 @@ public class ValueAnimatorTests extends ActivityInstrumentationTestCase2<BasicAn
// Only a1's pause listener should be called.
assertTrue(l1.pauseCalled);
assertFalse(l1.resumeCalled);
a1.resume();
runTestOnUiThread(new Runnable() {
@Override
public void run() {
a1.resume();
}
});
Thread.sleep(a1.getTotalDuration());