From a426812f58b320c191ed8427d145966724949d67 Mon Sep 17 00:00:00 2001 From: emancebo Date: Tue, 3 Feb 2015 12:15:11 -0800 Subject: Trebuchet: ensure preview animation is released after exiting TransitionEffectsFragment Change-Id: Id6253a6162ee47dd1a46886026f09c3adbdc7027 --- src/com/android/launcher3/Launcher.java | 1 + src/com/android/launcher3/TransitionEffectsFragment.java | 12 ++++++++++++ 2 files changed, 13 insertions(+) diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 937a167d1..3657093c2 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -1359,6 +1359,7 @@ public class Launcher extends Activity } fragmentTransaction .remove(mTransitionEffectsFragment).commit(); + mTransitionEffectsFragment = null; mDarkPanel.setVisibility(View.VISIBLE); ObjectAnimator anim = ObjectAnimator.ofFloat( diff --git a/src/com/android/launcher3/TransitionEffectsFragment.java b/src/com/android/launcher3/TransitionEffectsFragment.java index d490a0034..5fb5d22b7 100644 --- a/src/com/android/launcher3/TransitionEffectsFragment.java +++ b/src/com/android/launcher3/TransitionEffectsFragment.java @@ -153,6 +153,18 @@ public class TransitionEffectsFragment extends Fragment { frameAnimation.start(); } + @Override + public void onStop() { + super.onStop(); + + // explicitly stop animation to ensure that we release references from the + // view root's run queue + AnimationDrawable frameAnimation = (AnimationDrawable) mTransitionIcon.getBackground(); + if (frameAnimation != null) { + frameAnimation.stop(); + } + } + private void setSelected(View v) { v.setBackgroundColor(Color.WHITE); TextView t = (TextView) v.findViewById(R.id.item_name); -- cgit v1.2.3