From 012d39a0e954614d41229e35af5152dbd3b27efb Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Fri, 25 May 2018 10:37:53 -0700 Subject: [PATCH] Fix crash caused by removing update listener in update listener. Bug: 80236772 Test: Fling all apps open, and catch it before it reaches the top Change-Id: I082a26b97afb7dbc162758ff9654e4a3707f9d7e --- .../android/launcher3/allapps/AllAppsContainerView.java | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/allapps/AllAppsContainerView.java b/src/com/android/launcher3/allapps/AllAppsContainerView.java index 68ad6e346f..72ba418b25 100644 --- a/src/com/android/launcher3/allapps/AllAppsContainerView.java +++ b/src/com/android/launcher3/allapps/AllAppsContainerView.java @@ -466,9 +466,12 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo */ public void addSpringFromFlingUpdateListener(ValueAnimator animator, float velocity) { animator.addUpdateListener(new ValueAnimator.AnimatorUpdateListener() { + boolean shouldSpring = true; + @Override public void onAnimationUpdate(ValueAnimator valueAnimator) { - if (valueAnimator.getAnimatedFraction() >= FLING_ANIMATION_THRESHOLD) { + if (shouldSpring + && valueAnimator.getAnimatedFraction() >= FLING_ANIMATION_THRESHOLD) { int searchViewId = getSearchView().getId(); addSpringView(searchViewId); @@ -481,7 +484,7 @@ public class AllAppsContainerView extends SpringRelativeLayout implements DragSo } }); - animator.removeUpdateListener(this); + shouldSpring = false; } } });