Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d45204ba authored by Martijn Coenen's avatar Martijn Coenen
Browse files

Fix ConcurrentModificationException in AnimatorSet.

Would occur if you would start an AnimatorSet for the
second time.

Change-Id: I8fa0e8ab039e8525acae1564b2e9dec4a0838981
parent 7c8d19d5
Loading
Loading
Loading
Loading
+5 −1
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ package android.animation;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

/**
@@ -445,7 +446,10 @@ public final class AnimatorSet extends Animator {
            // First, clear out the old listeners
            ArrayList<AnimatorListener> oldListeners = node.animation.getListeners();
            if (oldListeners != null && oldListeners.size() > 0) {
                for (AnimatorListener listener : oldListeners) {
                final ArrayList<AnimatorListener> clonedListeners = new
                        ArrayList<AnimatorListener>(oldListeners);

                for (AnimatorListener listener : clonedListeners) {
                    if (listener instanceof DependencyListener ||
                            listener instanceof AnimatorSetListener) {
                        node.animation.removeListener(listener);