summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/LauncherAnimUtils.java
diff options
context:
space:
mode:
authorMichael Jurka <mikejurka@google.com>2013-10-23 15:21:32 +0200
committerMichael Jurka <mikejurka@google.com>2013-10-23 15:22:17 +0200
commit7c70d64d4c814e3d48b69aa4d9daf0717d71bff5 (patch)
tree658bc8e29b6fa338d40550d948c591c0ab11f78a /src/com/android/launcher3/LauncherAnimUtils.java
parent00a4093fa6071679b3a0430137a2eff458ae3fa9 (diff)
downloadandroid_packages_apps_Trebuchet-7c70d64d4c814e3d48b69aa4d9daf0717d71bff5.tar.gz
android_packages_apps_Trebuchet-7c70d64d4c814e3d48b69aa4d9daf0717d71bff5.tar.bz2
android_packages_apps_Trebuchet-7c70d64d4c814e3d48b69aa4d9daf0717d71bff5.zip
Prevent memory leaks coming from LauncherAnimUtils
Use weak references for global animation list Bug: 11322014 Change-Id: I38bb9184e45840113129781fa83ab40ec96d3868
Diffstat (limited to 'src/com/android/launcher3/LauncherAnimUtils.java')
-rw-r--r--src/com/android/launcher3/LauncherAnimUtils.java10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/com/android/launcher3/LauncherAnimUtils.java b/src/com/android/launcher3/LauncherAnimUtils.java
index 5d4f9c67e..e6c220b2a 100644
--- a/src/com/android/launcher3/LauncherAnimUtils.java
+++ b/src/com/android/launcher3/LauncherAnimUtils.java
@@ -25,12 +25,13 @@ import android.view.View;
import android.view.ViewTreeObserver;
import java.util.HashSet;
+import java.util.WeakHashMap;
public class LauncherAnimUtils {
- static HashSet<Animator> sAnimators = new HashSet<Animator>();
+ static WeakHashMap<Animator, Object> sAnimators = new WeakHashMap<Animator, Object>();
static Animator.AnimatorListener sEndAnimListener = new Animator.AnimatorListener() {
public void onAnimationStart(Animator animation) {
- sAnimators.add(animation);
+ sAnimators.put(animation, null);
}
public void onAnimationRepeat(Animator animation) {
@@ -74,13 +75,12 @@ public class LauncherAnimUtils {
}
public static void onDestroyActivity() {
- HashSet<Animator> animators = new HashSet<Animator>(sAnimators);
+ HashSet<Animator> animators = new HashSet<Animator>(sAnimators.keySet());
for (Animator a : animators) {
if (a.isRunning()) {
a.cancel();
- } else {
- sAnimators.remove(a);
}
+ sAnimators.remove(a);
}
}