Merge "Drag and drop preview size for BubbleTextView" into ub-launcher3-qt-future-dev

This commit is contained in:
TreeHugger Robot
2019-09-26 19:29:58 +00:00
committed by Android (Google) Code Review
3 changed files with 10 additions and 2 deletions

View File

@@ -1493,7 +1493,7 @@ public class Workspace extends PagedView<WorkspacePageIndicator>
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.

View File

@@ -284,7 +284,8 @@ public class DragLayer extends BaseDragLayer<Launcher> {
// 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);

View File

@@ -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