Make Animators pass internal tests

Fixes: 269524599

AnimatorSet wasn't properly managing cloning and
ViewPropertyAnimatorTest didn't work when the animator took too
long to start. This CL fixes both problems.

Test: ran animation tests
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:9cbebf9fb2066cf8765ba794a9181c6e6fca2ca4)
Merged-In: Icdf2e9d75d93fa6a4e99833c24a40b48b051f568
Change-Id: Icdf2e9d75d93fa6a4e99833c24a40b48b051f568
This commit is contained in:
George Mount
2023-02-15 16:28:34 -08:00
committed by Cherrypicker Worker
parent c4d71f41ad
commit 139b27a456
2 changed files with 6 additions and 1 deletions

View File

@@ -1503,6 +1503,7 @@ public final class AnimatorSet extends Animator implements AnimationHandler.Anim
anim.mNodeMap = new ArrayMap<Animator, Node>();
anim.mNodes = new ArrayList<Node>(nodeCount);
anim.mEvents = new ArrayList<AnimationEvent>();
anim.mStartListenersCalled = false;
anim.mAnimationEndListener = new AnimatorListenerAdapter() {
@Override
public void onAnimationEnd(Animator animation) {

View File

@@ -135,11 +135,15 @@ public class ViewPropertyAnimatorTest {
* @throws Exception
*/
@Before
public void setUp() throws Exception {
public void setUp() throws Throwable {
final BasicAnimatorActivity activity = mActivityRule.getActivity();
Button button = activity.findViewById(R.id.animatingButton);
mAnimator = button.animate().x(100).y(100);
mActivityRule.runOnUiThread(() -> {
mAnimator.start();
mAnimator.cancel();
});
// mListener is the main testing mechanism of this file. The asserts of each test
// are embedded in the listener callbacks that it implements.