Fix issue with spring loaded mode

Bug # 3373320
diff --git a/src/com/android/launcher2/SpringLoadedDragController.java b/src/com/android/launcher2/SpringLoadedDragController.java
index a734258..9007581 100644
--- a/src/com/android/launcher2/SpringLoadedDragController.java
+++ b/src/com/android/launcher2/SpringLoadedDragController.java
@@ -26,6 +26,8 @@
     // the screen the user is currently hovering over, if any
     private CellLayout mScreen;
     private Launcher mLauncher;
+    boolean mFinishedAnimation = false;
+    boolean mWaitingToReenter = false;
 
     public SpringLoadedDragController(Launcher launcher) {
         mLauncher = launcher;
@@ -33,9 +35,16 @@
         mAlarm.setOnAlarmListener(this);
     }
 
-    public void onDragEnter(CellLayout cl) {
+    public void onDragEnter(CellLayout cl, boolean isSpringLoaded) {
         mScreen = cl;
         mAlarm.setAlarm(ENTER_SPRING_LOAD_HOVER_TIME);
+        mFinishedAnimation = isSpringLoaded;
+        mWaitingToReenter = false;
+    }
+
+    public void onEnterSpringLoadedMode(boolean waitToReenter) {
+        mFinishedAnimation = true;
+        mWaitingToReenter = waitToReenter;
     }
 
     public void onDragExit() {
@@ -43,7 +52,9 @@
             mScreen.onDragExit();
         }
         mScreen = null;
-        mAlarm.setAlarm(EXIT_SPRING_LOAD_HOVER_TIME);
+        if (mFinishedAnimation && !mWaitingToReenter) {
+            mAlarm.setAlarm(EXIT_SPRING_LOAD_HOVER_TIME);
+        }
     }
 
     // this is called when our timer runs out