Correct size of AppWidget for color extraction.

Correct the size of the App Widget: first, compute the size when the
widget is positioned (it wasn't done), then do not apply the
transformation when computing the size of the widget when drawn.

Note: Somehow, there is a shift by 1 on the position on the x axis, both
in landscape and portrait. So I added a +1 to get the exact same values.
If not, we have a risk of getting different colors.

Fix: 188759989
Bug: 187907544
Test: Added logs and moved a widget by hand, check the actual
coordinates with hsv.

Change-Id: Ia3bd5b3e3ea9a3ef75f8cdf466a9800786646a94
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java
index 1df9df6..bfa1769 100644
--- a/src/com/android/launcher3/CellLayout.java
+++ b/src/com/android/launcher3/CellLayout.java
@@ -1080,9 +1080,10 @@
             cellToRect(targetCell[0], targetCell[1], spanX, spanY, mTempRect);
 
             // Now get the rect in drag layer coordinates.
-            getBoundsForViewInDragLayer(launcher.getDragLayer(), workspace, mTempRect, false,
+            getBoundsForViewInDragLayer(launcher.getDragLayer(), this, mTempRect, true,
                     mTmpFloatArray, mTempRectF);
             Utilities.setRect(mTempRectF, mTempRect);
+
             ((LauncherAppWidgetHostView) view).handleDrag(mTempRect, pageId);
         }
     }
@@ -2594,7 +2595,9 @@
         final int cellWidth = mCellWidth;
         final int cellHeight = mCellHeight;
 
-        final int hStartPadding = getPaddingLeft();
+        // We observe a shift of 1 pixel on the x coordinate compared to the actual cell coordinates
+        final int hStartPadding = getPaddingLeft()
+                + (int) Math.ceil(getUnusedHorizontalSpace() / 2f);
         final int vStartPadding = getPaddingTop();
 
         int x = hStartPadding + (cellX * mBorderSpacing) + (cellX * cellWidth);