Fix bug where folder open animation gets finished early

Also, sync FirstFrameAnimatorHelper with changes
made in Recents

Bug: 8530231

Change-Id: Ibf1a43f67d91df89a2338f0f0c0fb52ee5496e57
diff --git a/src/com/android/launcher2/LauncherViewPropertyAnimator.java b/src/com/android/launcher2/LauncherViewPropertyAnimator.java
index 274ff80..83b745e 100644
--- a/src/com/android/launcher2/LauncherViewPropertyAnimator.java
+++ b/src/com/android/launcher2/LauncherViewPropertyAnimator.java
@@ -53,6 +53,7 @@
     TimeInterpolator mInterpolator;
     ArrayList<Animator.AnimatorListener> mListeners;
     boolean mRunning = false;
+    FirstFrameAnimatorHelper mFirstFrameHelper;
 
     public LauncherViewPropertyAnimator(View target) {
         mTarget = target;
@@ -124,12 +125,10 @@
 
     @Override
     public void onAnimationStart(Animator animation) {
-	// This is the first time we get a handle to the internal ValueAnimator
-	// used by the ViewPropertyAnimator.
-	// FirstFrameAnimatorHelper hooks itself up to the updates on the animator,
-	// and then adjusts the play time to keep the first two frames jank-free
-        new FirstFrameAnimatorHelper((ValueAnimator) animation, mTarget)
-                .onAnimationUpdate((ValueAnimator) animation);
+        // This is the first time we get a handle to the internal ValueAnimator
+        // used by the ViewPropertyAnimator.
+        mFirstFrameHelper.onAnimationStart(animation);
+
         for (int i = 0; i < mListeners.size(); i++) {
             Animator.AnimatorListener listener = mListeners.get(i);
             listener.onAnimationStart(this);
@@ -193,6 +192,11 @@
     @Override
     public void start() {
         mViewPropertyAnimator = mTarget.animate();
+
+        // FirstFrameAnimatorHelper hooks itself up to the updates on the animator,
+        // and then adjusts the play time to keep the first two frames jank-free
+        mFirstFrameHelper = new FirstFrameAnimatorHelper(mViewPropertyAnimator, mTarget);
+
         if (mPropertiesToSet.contains(Properties.TRANSLATION_X)) {
             mViewPropertyAnimator.translationX(mTranslationX);
         }