From 45812a9ed6b75427b3076907bc8717472cd238b2 Mon Sep 17 00:00:00 2001 From: Samuel Fufa Date: Wed, 25 Sep 2019 13:30:55 -0700 Subject: [PATCH] Drag and drop preview size for BubbleTextView Test:Manual Bug:141260670,141263002 Change-Id: If08dba28cce3ae07bb39ddad3743dd5eea92cb90 --- src/com/android/launcher3/Workspace.java | 2 +- src/com/android/launcher3/dragndrop/DragLayer.java | 3 ++- .../android/launcher3/graphics/DragPreviewProvider.java | 7 +++++++ 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 1cb15db98e..223cd7d89d 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -1493,7 +1493,7 @@ public class Workspace extends PagedView Rect dragRect = null; if (child instanceof BubbleTextView) { dragRect = new Rect(); - ((BubbleTextView) child).getIconBounds(dragRect); + BubbleTextView.getIconBounds(child, dragRect, grid.iconSizePx); dragLayerY += dragRect.top; // Note: The dragRect is used to calculate drag layer offsets, but the // dragVisualizeOffset in addition to the dragRect (the size) to position the outline. diff --git a/src/com/android/launcher3/dragndrop/DragLayer.java b/src/com/android/launcher3/dragndrop/DragLayer.java index b59164ae0a..cdc70611dd 100644 --- a/src/com/android/launcher3/dragndrop/DragLayer.java +++ b/src/com/android/launcher3/dragndrop/DragLayer.java @@ -284,7 +284,8 @@ public class DragLayer extends BaseDragLayer { // The child may be scaled (always about the center of the view) so to account for it, // we have to offset the position by the scaled size. Once we do that, we can center // the drag view about the scaled child view. - toY += Math.round(toScale * tv.getPaddingTop()); + // padding will remain constant (does not scale with size) + toY += tv.getPaddingTop(); toY -= dragView.getMeasuredHeight() * (1 - toScale) / 2; if (dragView.getDragVisualizeOffset() != null) { toY -= Math.round(toScale * dragView.getDragVisualizeOffset().y); diff --git a/src/com/android/launcher3/graphics/DragPreviewProvider.java b/src/com/android/launcher3/graphics/DragPreviewProvider.java index 747efe3075..f579451971 100644 --- a/src/com/android/launcher3/graphics/DragPreviewProvider.java +++ b/src/com/android/launcher3/graphics/DragPreviewProvider.java @@ -195,15 +195,22 @@ public class DragPreviewProvider { private final Bitmap mPreviewSnapshot; private final Context mContext; + private final boolean mIsIcon; OutlineGeneratorCallback(Bitmap preview) { mPreviewSnapshot = preview; mContext = mView.getContext(); + mIsIcon = mView instanceof BubbleTextView; } @Override public void run() { Bitmap preview = convertPreviewToAlphaBitmap(mPreviewSnapshot); + if (mIsIcon) { + int size = Launcher.getLauncher(mContext).getDeviceProfile().iconSizePx; + preview = Bitmap.createScaledBitmap(preview, size, size, false); + } + //else case covers AppWidgetHost (doesn't drag/drop across different device profiles) // We start by removing most of the alpha channel so as to ignore shadows, and // other types of partial transparency when defining the shape of the object