From cd496d723ca6b4b100771ae66f09007e7acf0d17 Mon Sep 17 00:00:00 2001 From: Michael Jurka Date: Thu, 11 Apr 2013 11:32:45 -0700 Subject: [PATCH] Only postpone animations if app is visible Fixes bug where folders would remain open after returning to launcher Bug: 8681168 Change-Id: I930616f2aa006c1e23298dbdb0a80a9390ea41af --- .../android/launcher2/FirstFrameAnimatorHelper.java | 7 +++++++ src/com/android/launcher2/Launcher.java | 12 ++++++++++++ 2 files changed, 19 insertions(+) diff --git a/src/com/android/launcher2/FirstFrameAnimatorHelper.java b/src/com/android/launcher2/FirstFrameAnimatorHelper.java index 8eac7cd2c8..7180413ec9 100644 --- a/src/com/android/launcher2/FirstFrameAnimatorHelper.java +++ b/src/com/android/launcher2/FirstFrameAnimatorHelper.java @@ -43,6 +43,7 @@ public class FirstFrameAnimatorHelper extends AnimatorListenerAdapter private static ViewTreeObserver.OnDrawListener sGlobalDrawListener; private static long sGlobalFrameCounter; + private static boolean sVisible; public FirstFrameAnimatorHelper(ValueAnimator animator, View target) { mTarget = target; @@ -61,6 +62,10 @@ public class FirstFrameAnimatorHelper extends AnimatorListenerAdapter onAnimationUpdate(va); } + public static void setIsVisible(boolean visible) { + sVisible = visible; + } + public static void initializeDrawListener(View view) { if (sGlobalDrawListener != null) { view.getViewTreeObserver().removeOnDrawListener(sGlobalDrawListener); @@ -77,6 +82,7 @@ public class FirstFrameAnimatorHelper extends AnimatorListenerAdapter } }; view.getViewTreeObserver().addOnDrawListener(sGlobalDrawListener); + sVisible = true; } public void onAnimationUpdate(final ValueAnimator animation) { @@ -87,6 +93,7 @@ public class FirstFrameAnimatorHelper extends AnimatorListenerAdapter } if (!mHandlingOnAnimationUpdate && + sVisible && // If the current play time exceeds the duration, the animation // will get finished, even if we call setCurrentPlayTime -- therefore // don't adjust the animation in that case diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index b20e3a573b..fc42f3f799 100644 --- a/src/com/android/launcher2/Launcher.java +++ b/src/com/android/launcher2/Launcher.java @@ -717,6 +717,18 @@ public final class Launcher extends Activity } } + @Override + protected void onStop() { + super.onStop(); + FirstFrameAnimatorHelper.setIsVisible(false); + } + + @Override + protected void onStart() { + super.onStart(); + FirstFrameAnimatorHelper.setIsVisible(true); + } + @Override protected void onResume() { super.onResume();