Pixel perfect drag animations in workspace and folders, including springloaded

Change-Id: I630c365bdc8e896a21dc17ebe8acb8d4664c77b5
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index 12fe971..8a4bdc7 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -385,37 +385,12 @@
     protected void determineDraggingStart(android.view.MotionEvent ev) {
         // Disable dragging by pulling an app down for now.
     }
+
     private void beginDraggingApplication(View v) {
-        // Make a copy of the ApplicationInfo
-        ApplicationInfo appInfo = new ApplicationInfo((ApplicationInfo) v.getTag());
-
-        // Compose the drag image (top compound drawable, index is 1)
-        final TextView tv = (TextView) v;
-        final Drawable icon = tv.getCompoundDrawables()[1];
-        Bitmap b = Bitmap.createBitmap(v.getWidth(), v.getHeight(),
-                Bitmap.Config.ARGB_8888);
-        mCanvas.setBitmap(b);
-        mCanvas.save();
-        mCanvas.translate((v.getWidth() - icon.getIntrinsicWidth()) / 2, v.getPaddingTop());
-        icon.draw(mCanvas);
-        mCanvas.restore();
-
-        // Compose the visible rect of the drag image
-        Rect dragRect = null;
-        if (v instanceof TextView) {
-            int top = v.getPaddingTop();
-            int left = (b.getWidth() - mAppIconSize) / 2;
-            int right = left + mAppIconSize;
-            int bottom = top + mAppIconSize;
-            dragRect = new Rect(left, top, right, bottom);
-        }
-
-        // Start the drag
-        mLauncher.lockScreenOrientation();
-        mLauncher.getWorkspace().onDragStartedWithItemSpans(1, 1, b);
-        mDragController.startDrag(v, b, this, appInfo, DragController.DRAG_ACTION_COPY, dragRect);
-        b.recycle();
+        mLauncher.getWorkspace().onDragStartedWithItem(v);
+        mLauncher.getWorkspace().beginDragShared(v, this);
     }
+
     private void beginDraggingWidget(View v) {
         // Get the widget preview as the drag representation
         ImageView image = (ImageView) v.findViewById(R.id.widget_preview);