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);
             }