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