summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorChet Haase <chet@google.com>2011-11-10 17:33:31 -0800
committerAndroid (Google) Code Review <android-gerrit@google.com>2011-11-10 17:33:31 -0800
commit692fda9da31e2a25fd295140ec0d8b6cd0a934ee (patch)
tree6bec83330d1705edf12301ec3bd783e303559248 /core/java/android
parent7c9f8005e20af0bb741e36d8239f301371ba5f7f (diff)
parent8a22e59311ab797aeb10682b4c9e036ded95a429 (diff)
downloadframeworks_base-692fda9da31e2a25fd295140ec0d8b6cd0a934ee.zip
frameworks_base-692fda9da31e2a25fd295140ec0d8b6cd0a934ee.tar.gz
frameworks_base-692fda9da31e2a25fd295140ec0d8b6cd0a934ee.tar.bz2
Merge "Fix leak in LayoutTransition" into ics-mr1
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/animation/LayoutTransition.java9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/java/android/animation/LayoutTransition.java b/core/java/android/animation/LayoutTransition.java
index f383af9..7f0ea99 100644
--- a/core/java/android/animation/LayoutTransition.java
+++ b/core/java/android/animation/LayoutTransition.java
@@ -657,6 +657,15 @@ public class LayoutTransition {
*/
private void setupChangeAnimation(final ViewGroup parent, final int changeReason,
Animator baseAnimator, final long duration, final View child) {
+
+ // If we already have a listener for this child, then we've already set up the
+ // changing animation we need. Multiple calls for a child may occur when several
+ // add/remove operations are run at once on a container; each one will trigger
+ // changes for the existing children in the container.
+ if (layoutChangeListenerMap.get(child) != null) {
+ return;
+ }
+
// Make a copy of the appropriate animation
final Animator anim = baseAnimator.clone();