diff options
author | Tony Wickham <twickham@google.com> | 2018-05-17 16:30:46 -0700 |
---|---|---|
committer | Tony Wickham <twickham@google.com> | 2018-05-17 16:30:46 -0700 |
commit | 7de574175bb81354cad47e472bdaba1dd28ac5b0 (patch) | |
tree | 49b989825cb5bfec59569e0ec5da54b1e3597624 /src/com/android/launcher3/touch/AbstractStateChangeTouchController.java | |
parent | 48059dc7061b3144ba0b2f49d4ac4da7f7471752 (diff) | |
download | android_packages_apps_Trebuchet-7de574175bb81354cad47e472bdaba1dd28ac5b0.tar.gz android_packages_apps_Trebuchet-7de574175bb81354cad47e472bdaba1dd28ac5b0.tar.bz2 android_packages_apps_Trebuchet-7de574175bb81354cad47e472bdaba1dd28ac5b0.zip |
Fix a couple issues with swiping up from home
- Don't update the animation to go from 0 to 1; instead, update the
interpolator to clamp to the remaining progress (b/79773309)
- Fix NPE that can happen in a race between the atomic animation
ending and the non-atomic animation canceling/ending
Change-Id: I313251dc5cbd7b931b043fc3e840bb4ab368a790
Diffstat (limited to 'src/com/android/launcher3/touch/AbstractStateChangeTouchController.java')
-rw-r--r-- | src/com/android/launcher3/touch/AbstractStateChangeTouchController.java | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java index e29250a5e..24382b7d0 100644 --- a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java +++ b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java @@ -209,11 +209,13 @@ public abstract class AbstractStateChangeTouchController @Override public void onAnimationSuccess(Animator animation) { cancelAtomicComponentsController(); - mAtomicComponentsStartProgress = mCurrentAnimation.getProgressFraction(); - long duration = (long) (getShiftRange() * 2); - mAtomicComponentsController = AnimatorPlaybackController.wrap( - createAtomicAnimForState(mFromState, mToState, duration), duration); - mAtomicComponentsController.dispatchOnStart(); + if (mCurrentAnimation != null) { + mAtomicComponentsStartProgress = mCurrentAnimation.getProgressFraction(); + long duration = (long) (getShiftRange() * 2); + mAtomicComponentsController = AnimatorPlaybackController.wrap( + createAtomicAnimForState(mFromState, mToState, duration), duration); + mAtomicComponentsController.dispatchOnStart(); + } } }); } |