am 4575d201: am 8171d8ce: Merge "Fixing issue where shortcut holographic outlines were different than widgets. (Bug 5659891)" into ics-mr1

* commit '4575d2014c204d68e7afe493675e8600447d0d0e':
  Fixing issue where shortcut holographic outlines were different than widgets. (Bug 5659891)
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index ca02e1e..b732eec 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -560,7 +560,8 @@
         PendingAddItemInfo createItemInfo = (PendingAddItemInfo) v.getTag();
 
         // Compose the drag image
-        Bitmap b;
+        Bitmap preview;
+        Bitmap outline;
         if (createItemInfo instanceof PendingAddWidgetInfo) {
             PendingAddWidgetInfo createWidgetInfo = (PendingAddWidgetInfo) createItemInfo;
             int[] spanXY = mLauncher.getSpanForWidget(createWidgetInfo, null);
@@ -569,20 +570,17 @@
 
             int[] maxSize = mLauncher.getWorkspace().estimateItemSize(spanXY[0], spanXY[1],
                     createWidgetInfo, true);
-            b = getWidgetPreview(createWidgetInfo.componentName, createWidgetInfo.previewImage,
+            preview = getWidgetPreview(createWidgetInfo.componentName, createWidgetInfo.previewImage,
                     createWidgetInfo.icon, spanXY[0], spanXY[1], maxSize[0], maxSize[1]);
         } else {
             // Workaround for the fact that we don't keep the original ResolveInfo associated with
             // the shortcut around.  To get the icon, we just render the preview image (which has
             // the shortcut icon) to a new drag bitmap that clips the non-icon space.
-            b = Bitmap.createBitmap(mWidgetPreviewIconPaddedDimension,
+            preview = Bitmap.createBitmap(mWidgetPreviewIconPaddedDimension,
                     mWidgetPreviewIconPaddedDimension, Bitmap.Config.ARGB_8888);
-            Drawable preview = image.getDrawable();
-            mCanvas.setBitmap(b);
-            mCanvas.save();
-            preview.draw(mCanvas);
-            mCanvas.restore();
-            mCanvas.drawColor(mDragViewMultiplyColor, PorterDuff.Mode.MULTIPLY);
+            Drawable d = image.getDrawable();
+            mCanvas.setBitmap(preview);
+            d.draw(mCanvas);
             mCanvas.setBitmap(null);
             createItemInfo.spanX = createItemInfo.spanY = 1;
         }
@@ -597,12 +595,21 @@
             }
         }
 
+        // Save the preview for the outline generation, then dim the preview
+        outline = Bitmap.createScaledBitmap(preview, preview.getWidth(), preview.getHeight(),
+                false);
+        mCanvas.setBitmap(preview);
+        mCanvas.drawColor(mDragViewMultiplyColor, PorterDuff.Mode.MULTIPLY);
+        mCanvas.setBitmap(null);
+
         // Start the drag
+        alphaClipPaint = null;
         mLauncher.lockScreenOrientationOnLargeUI();
-        mLauncher.getWorkspace().onDragStartedWithItem(createItemInfo, b, alphaClipPaint);
-        mDragController.startDrag(image, b, this, createItemInfo,
+        mLauncher.getWorkspace().onDragStartedWithItem(createItemInfo, outline, alphaClipPaint);
+        mDragController.startDrag(image, preview, this, createItemInfo,
                 DragController.DRAG_ACTION_COPY, null);
-        b.recycle();
+        outline.recycle();
+        preview.recycle();
     }
     @Override
     protected boolean beginDragging(View v) {
diff --git a/src/com/android/launcher2/Workspace.java b/src/com/android/launcher2/Workspace.java
index 60f57c2..d4e8ad4 100644
--- a/src/com/android/launcher2/Workspace.java
+++ b/src/com/android/launcher2/Workspace.java
@@ -1891,9 +1891,7 @@
         // center the image
         dst.offset((w - scaledWidth) / 2, (h - scaledHeight) / 2);
 
-        Paint p = new Paint();
-        p.setFilterBitmap(true);
-        canvas.drawBitmap(orig, src, dst, p);
+        canvas.drawBitmap(orig, src, dst, null);
         mOutlineHelper.applyMediumExpensiveOutlineWithBlur(b, canvas, outlineColor, outlineColor,
                 alphaClipPaint);
         canvas.setBitmap(null);