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