Add appropriate (tiny) offset to widget drops so they land correctly.

Also removed some unused parameters I found on the way.

Bug: 25191623
Change-Id: Ib9a30db106467c114cc8b54a5b13ed3e88162d56
This commit is contained in:
Tony Wickham
2015-11-03 18:05:01 -08:00
parent aa4011e63e
commit a501d49a6a
6 changed files with 27 additions and 29 deletions

View File

@@ -902,9 +902,7 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler {
((LayoutParams) mShortcutsAndWidgets.getChildAt(0).getLayoutParams()).isFullscreen;
int left = getPaddingLeft();
if (!isFullscreen) {
int offset = getMeasuredWidth() - getPaddingLeft() - getPaddingRight() -
(mCountX * mCellWidth);
left += (int) Math.ceil(offset / 2f);
left += (int) Math.ceil(getUnusedHorizontalSpace() / 2f);
}
int top = getPaddingTop();
@@ -916,6 +914,15 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler {
top + b - t);
}
/**
* Returns the amount of space left over after subtracting padding and cells. This space will be
* very small, a few pixels at most, and is a result of rounding down when calculating the cell
* width in {@link DeviceProfile#calculateCellWidth(int, int)}.
*/
public int getUnusedHorizontalSpace() {
return getMeasuredWidth() - getPaddingLeft() - getPaddingRight() - (mCountX * mCellWidth);
}
@Override
protected void onSizeChanged(int w, int h, int oldw, int oldh) {
super.onSizeChanged(w, h, oldw, oldh);
@@ -1048,8 +1055,8 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler {
return false;
}
void visualizeDropLocation(View v, Bitmap dragOutline, int originX, int originY, int cellX,
int cellY, int spanX, int spanY, boolean resize, DropTarget.DragObject dragObject) {
void visualizeDropLocation(View v, Bitmap dragOutline, int cellX, int cellY, int spanX,
int spanY, boolean resize, DropTarget.DragObject dragObject) {
final int oldDragCellX = mDragCell[0];
final int oldDragCellY = mDragCell[1];