Porting PagedView from KG to gain simplified scaling model, reordering

-> We are no longer scaling individual Celllayouts, instead we are scaling
   the entire Workspace (and the CellLayouts come along for the ride)
-> Due to the above change, many assumptions were broken. In particular,
   our drag and drop / animation archiecture is fairly fragile due to the
   frequent and complex mapping of points between different bits of the
   hierarchy. This CL contains a number of fixes which address such
   breakages.

Change-Id: I2e630eab17528729b764b61f587858f6499fd318
diff --git a/src/com/android/launcher3/DragController.java b/src/com/android/launcher3/DragController.java
index 970ce26..c59f34c 100644
--- a/src/com/android/launcher3/DragController.java
+++ b/src/com/android/launcher3/DragController.java
@@ -509,10 +509,6 @@
 
     private void checkTouchMove(DropTarget dropTarget) {
         if (dropTarget != null) {
-            DropTarget delegate = dropTarget.getDropTargetDelegate(mDragObject);
-            if (delegate != null) {
-                dropTarget = delegate;
-            }
             if (mLastDropTarget != dropTarget) {
                 if (mLastDropTarget != null) {
                     mLastDropTarget.onDragExit(mDragObject);
@@ -701,24 +697,15 @@
             if (!target.isDropEnabled())
                 continue;
 
-            target.getHitRect(r);
-
-            // Convert the hit rect to DragLayer coordinates
-            target.getLocationInDragLayer(dropCoordinates);
-            r.offset(dropCoordinates[0] - target.getLeft(), dropCoordinates[1] - target.getTop());
+            target.getHitRectRelativeToDragLayer(r);
 
             mDragObject.x = x;
             mDragObject.y = y;
             if (r.contains(x, y)) {
-                DropTarget delegate = target.getDropTargetDelegate(mDragObject);
-                if (delegate != null) {
-                    target = delegate;
-                    target.getLocationInDragLayer(dropCoordinates);
-                }
 
-                // Make dropCoordinates relative to the DropTarget
-                dropCoordinates[0] = x - dropCoordinates[0];
-                dropCoordinates[1] = y - dropCoordinates[1];
+                dropCoordinates[0] = x;
+                dropCoordinates[1] = y;
+                mLauncher.getDragLayer().mapCoordInSelfToDescendent((View) target, dropCoordinates);
 
                 return target;
             }