diff --git a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java index a9d0e614e4..7c02f3dc93 100644 --- a/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java +++ b/src/com/android/launcher3/touch/AbstractStateChangeTouchController.java @@ -396,6 +396,12 @@ public abstract class AbstractStateChangeTouchController @Override public void onDragEnd(float velocity) { + if (mCurrentAnimation == null) { + // Unlikely, but we may have been canceled just before onDragEnd(). We assume whoever + // canceled us will handle a new state transition to clean up. + return; + } + boolean fling = mDetector.isFling(velocity); boolean blockedFling = fling && mFlingBlockCheck.isBlocked();