Add test for regression in Animators

Fixes: 278484989

When a ValueAnimator is started, it can be started again to
start from the beginning.

Test: new test
Change-Id: Ic2351d8a49c079adea55b46632b8624e17f8755a
This commit is contained in:
George Mount
2023-04-17 15:30:43 -07:00
parent 011d00e117
commit d35b973170

View File

@@ -1127,6 +1127,31 @@ public class ValueAnimatorTests {
mActivityRule.runOnUiThread(() -> {});
}
@Test
public void restartValueAnimator() throws Throwable {
CountDownLatch latch = new CountDownLatch(1);
ValueAnimator.AnimatorUpdateListener listener = new ValueAnimator.AnimatorUpdateListener() {
@Override
public void onAnimationUpdate(ValueAnimator animation) {
if (((float) animation.getAnimatedValue()) != A1_START_VALUE) {
latch.countDown();
}
}
};
a1.addUpdateListener(listener);
mActivityRule.runOnUiThread(() -> {
a1.start();
});
// wait for a change in the value
assertTrue(latch.await(2, TimeUnit.SECONDS));
mActivityRule.runOnUiThread(() -> {
a1.start();
assertEquals(A1_START_VALUE, a1.getAnimatedValue());
});
}
class MyUpdateListener implements ValueAnimator.AnimatorUpdateListener {
boolean wasRunning = false;
long firstRunningFrameTime = -1;