diff --git a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java index d478d48653..55f850c8d4 100644 --- a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java +++ b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java @@ -283,7 +283,9 @@ public abstract class AbstractStateChangeTouchController protected void updateProgress(float fraction) { mCurrentAnimation.setPlayFraction(fraction); if (mAtomicComponentsController != null) { - mAtomicComponentsController.setPlayFraction(fraction - mAtomicComponentsStartProgress); + // Make sure we don't divide by 0, and have at least a small runway. + float start = Math.min(mAtomicComponentsStartProgress, 0.9f); + mAtomicComponentsController.setPlayFraction((fraction - start) / (1 - start)); } maybeUpdateAtomicAnim(mFromState, mToState, fraction); }