Merge "Creating a new alarm when drag X,Y change" into tm-qpr-dev
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index fd670c1..483309d 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -2392,10 +2392,10 @@
             mDragTargetLayout.visualizeDropLocation(mTargetCell[0], mTargetCell[1],
                     item.spanX, item.spanY, d);
         } else if ((mDragMode == DRAG_MODE_NONE || mDragMode == DRAG_MODE_REORDER)
-                && !mReorderAlarm.alarmPending()
                 && (mLastReorderX != reorderX || mLastReorderY != reorderY)
                 && targetCellDistance < mDragTargetLayout.getReorderRadius(mTargetCell, item.spanX,
                 item.spanY)) {
+            mReorderAlarm.cancelAlarm();
             mLastReorderX = reorderX;
             mLastReorderY = reorderY;
             mDragTargetLayout.performReorder((int) mDragViewVisualCenter[0],
diff --git a/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java b/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java
index d3b6d37..a8753ed 100644
--- a/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java
+++ b/tests/src/com/android/launcher3/celllayout/ReorderWidgets.java
@@ -41,7 +41,6 @@
 
 import org.junit.Assume;
 import org.junit.Before;
-import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -145,28 +144,24 @@
         runTestCase(testCaseMap.get(iconGridDimensions));
     }
 
-    @Ignore //b/261178121
     @Test
-    public void simpleReorder()  throws ExecutionException, InterruptedException {
+    public void simpleReorder() throws ExecutionException, InterruptedException {
         runTestCaseMap(SimpleReorderCase.TEST_BY_GRID_SIZE,
                 SimpleReorderCase.class.getSimpleName());
     }
 
-    @Ignore //b/261178121
     @Test
-    public void pushTest()  throws ExecutionException, InterruptedException {
+    public void pushTest() throws ExecutionException, InterruptedException {
         runTestCaseMap(PushReorderCase.TEST_BY_GRID_SIZE, PushReorderCase.class.getSimpleName());
     }
 
-    @Ignore //b/261178121
     @Test
-    public void fullReorder()  throws ExecutionException, InterruptedException {
+    public void fullReorder() throws ExecutionException, InterruptedException {
         runTestCaseMap(FullReorderCase.TEST_BY_GRID_SIZE, FullReorderCase.class.getSimpleName());
     }
 
-    @Ignore //b/261178121
     @Test
-    public void moveOutReorder()  throws ExecutionException, InterruptedException {
+    public void moveOutReorder() throws ExecutionException, InterruptedException {
         runTestCaseMap(MoveOutReorderCase.TEST_BY_GRID_SIZE,
                 MoveOutReorderCase.class.getSimpleName());
     }
diff --git a/tests/src/com/android/launcher3/celllayout/testcases/FullReorderCase.java b/tests/src/com/android/launcher3/celllayout/testcases/FullReorderCase.java
index a98882c..d68d2ed 100644
--- a/tests/src/com/android/launcher3/celllayout/testcases/FullReorderCase.java
+++ b/tests/src/com/android/launcher3/celllayout/testcases/FullReorderCase.java
@@ -81,8 +81,29 @@
             MOVE_TO_4x4,
             END_BOARD_STR_4x4);
 
+    /** 4x4 Test
+     **/
+    private static final String START_BOARD_STR_4x5 = ""
+            + "xxxx\n"
+            + "22mm\n"
+            + "iimm\n"
+            + "ii11\n"
+            + "ii11";
+    private static final Point MOVE_TO_4x5 = new Point(0, 3);
+    private static final String END_BOARD_STR_4x5 = ""
+            + "xxxx\n"
+            + "22ii\n"
+            + "mmii\n"
+            + "mm11\n"
+            + "ii11";
+
+    private static final ReorderTestCase TEST_CASE_4x5 = new ReorderTestCase(START_BOARD_STR_4x5,
+            MOVE_TO_4x5,
+            END_BOARD_STR_4x5);
+
     public static final Map<Point, ReorderTestCase> TEST_BY_GRID_SIZE =
             Map.of(new Point(5, 5), TEST_CASE_5x5,
                     new Point(6, 5), TEST_CASE_6x5,
-                    new Point(4, 4), TEST_CASE_4x4);
+                    new Point(4, 4), TEST_CASE_4x4,
+                    new Point(4, 5), TEST_CASE_4x5);
 }