Fix crash caused by unregistering animation listener
diff --git a/src/com/android/launcher2/FirstFrameAnimatorHelper.java b/src/com/android/launcher2/FirstFrameAnimatorHelper.java
index f42a741..2351dd0 100644
--- a/src/com/android/launcher2/FirstFrameAnimatorHelper.java
+++ b/src/com/android/launcher2/FirstFrameAnimatorHelper.java
@@ -60,7 +60,7 @@
view.getViewTreeObserver().addOnDrawListener(sGlobalDrawListener);
}
- public void onAnimationUpdate(ValueAnimator animation) {
+ public void onAnimationUpdate(final ValueAnimator animation) {
if (mStartTime == -1) {
mStartFrame = sGlobalFrameCounter;
mStartTime = System.currentTimeMillis();
@@ -86,7 +86,11 @@
mAdjustedSecondFrameTime = true;
} else {
if (frameNum > 1) {
- animation.removeUpdateListener(this);
+ mTarget.post(new Runnable() {
+ public void run() {
+ animation.removeUpdateListener(FirstFrameAnimatorHelper.this);
+ }
+ });
}
if (DEBUG) print(animation);
}