diff options
author | Tony Wickham <twickham@google.com> | 2015-12-04 14:21:19 -0800 |
---|---|---|
committer | android-build-merger <android-build-merger@google.com> | 2015-12-04 14:21:19 -0800 |
commit | 11c45f114165330ea9c895ca6fdf83fdaa2e5fad (patch) | |
tree | ad7606d0d7309af50df5bacf10cf404d6c490445 | |
parent | 92b3397711a05481793ea71b7d90da8813feda7a (diff) | |
parent | 8db5d7ca60e79f007bfce7952c15c74d0ee44bc0 (diff) | |
download | android_packages_apps_Trebuchet-11c45f114165330ea9c895ca6fdf83fdaa2e5fad.tar.gz android_packages_apps_Trebuchet-11c45f114165330ea9c895ca6fdf83fdaa2e5fad.tar.bz2 android_packages_apps_Trebuchet-11c45f114165330ea9c895ca6fdf83fdaa2e5fad.zip |
Merge "Add appropriate (tiny) offset to widget drops so they land correctly." into ub-launcher3-burnaby-polish
am: 8db5d7ca60
* commit '8db5d7ca60e79f007bfce7952c15c74d0ee44bc0':
Add appropriate (tiny) offset to widget drops so they land correctly.
-rw-r--r-- | src/com/android/launcher3/CellLayout.java | 17 | ||||
-rw-r--r-- | src/com/android/launcher3/Launcher.java | 3 | ||||
-rw-r--r-- | src/com/android/launcher3/ShortcutAndWidgetContainer.java | 3 | ||||
-rw-r--r-- | src/com/android/launcher3/Workspace.java | 21 | ||||
-rw-r--r-- | src/com/android/launcher3/dragndrop/DragLayer.java | 4 | ||||
-rw-r--r-- | src/com/android/launcher3/dragndrop/DragView.java | 8 |
6 files changed, 27 insertions, 29 deletions
diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index eb70b1362..3d3d57dbd 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -890,9 +890,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(); @@ -904,6 +902,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); @@ -1036,8 +1043,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]; diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java index 687f57a2c..1eda66df2 100644 --- a/src/com/android/launcher3/Launcher.java +++ b/src/com/android/launcher3/Launcher.java @@ -881,8 +881,7 @@ public class Launcher extends Activity } @Thunk void completeTwoStageWidgetDrop(final int resultCode, final int appWidgetId) { - CellLayout cellLayout = - (CellLayout) mWorkspace.getScreenWithId(mPendingAddInfo.screenId); + CellLayout cellLayout = mWorkspace.getScreenWithId(mPendingAddInfo.screenId); Runnable onCompleteRunnable = null; int animationType = 0; diff --git a/src/com/android/launcher3/ShortcutAndWidgetContainer.java b/src/com/android/launcher3/ShortcutAndWidgetContainer.java index 20c27735e..008dd847e 100644 --- a/src/com/android/launcher3/ShortcutAndWidgetContainer.java +++ b/src/com/android/launcher3/ShortcutAndWidgetContainer.java @@ -141,8 +141,7 @@ public class ShortcutAndWidgetContainer extends ViewGroup { lp.height = getMeasuredHeight(); } int childWidthMeasureSpec = MeasureSpec.makeMeasureSpec(lp.width, MeasureSpec.EXACTLY); - int childheightMeasureSpec = MeasureSpec.makeMeasureSpec(lp.height, - MeasureSpec.EXACTLY); + int childheightMeasureSpec = MeasureSpec.makeMeasureSpec(lp.height, MeasureSpec.EXACTLY); child.measure(childWidthMeasureSpec, childheightMeasureSpec); } diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index a73a13111..0d5bbc11d 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -337,7 +337,7 @@ public class Workspace extends PagedView if (getChildCount() > 0) { // Use the first non-custom page to estimate the child position CellLayout cl = (CellLayout) getChildAt(numCustomPages()); - Rect r = estimateItemPosition(cl, itemInfo, 0, 0, itemInfo.spanX, itemInfo.spanY); + Rect r = estimateItemPosition(cl, 0, 0, itemInfo.spanX, itemInfo.spanY); size[0] = r.width(); size[1] = r.height(); if (springLoaded) { @@ -352,8 +352,7 @@ public class Workspace extends PagedView } } - public Rect estimateItemPosition(CellLayout cl, ItemInfo pendingInfo, - int hCell, int vCell, int hSpan, int vSpan) { + public Rect estimateItemPosition(CellLayout cl, int hCell, int vCell, int hSpan, int vSpan) { Rect r = new Rect(); cl.cellToRect(hCell, vCell, hSpan, vSpan, r); return r; @@ -2970,7 +2969,6 @@ public class Workspace extends PagedView if (!nearestDropOccupied) { mDragTargetLayout.visualizeDropLocation(child, mDragOutline, - (int) mDragViewVisualCenter[0], (int) mDragViewVisualCenter[1], mTargetCell[0], mTargetCell[1], item.spanX, item.spanY, false, d); } else if ((mDragMode == DRAG_MODE_NONE || mDragMode == DRAG_MODE_REORDER) && !mReorderAlarm.alarmPending() && (mLastReorderX != reorderX || @@ -3112,7 +3110,6 @@ public class Workspace extends PagedView boolean resize = resultSpan[0] != spanX || resultSpan[1] != spanY; mDragTargetLayout.visualizeDropLocation(child, mDragOutline, - (int) mDragViewVisualCenter[0], (int) mDragViewVisualCenter[1], mTargetCell[0], mTargetCell[1], resultSpan[0], resultSpan[1], resize, dragObject); } } @@ -3318,14 +3315,13 @@ public class Workspace extends PagedView } private void getFinalPositionForDropAnimation(int[] loc, float[] scaleXY, - DragView dragView, CellLayout layout, ItemInfo info, int[] targetCell, - boolean external, boolean scale) { + DragView dragView, CellLayout layout, ItemInfo info, int[] targetCell, boolean scale) { // Now we animate the dragView, (ie. the widget or shortcut preview) into its final // location and size on the home screen. int spanX = info.spanX; int spanY = info.spanY; - Rect r = estimateItemPosition(layout, info, targetCell[0], targetCell[1], spanX, spanY); + Rect r = estimateItemPosition(layout, targetCell[0], targetCell[1], spanX, spanY); loc[0] = r.left; loc[1] = r.top; @@ -3346,14 +3342,15 @@ public class Workspace extends PagedView // The animation will scale the dragView about its center, so we need to center about // the final location. - loc[0] -= (dragView.getMeasuredWidth() - cellLayoutScale * r.width()) / 2; + loc[0] -= (dragView.getMeasuredWidth() - cellLayoutScale * r.width()) / 2 + - Math.ceil(layout.getUnusedHorizontalSpace() / 2f); loc[1] -= (dragView.getMeasuredHeight() - cellLayoutScale * r.height()) / 2; scaleXY[0] = dragViewScaleX * cellLayoutScale; scaleXY[1] = dragViewScaleY * cellLayoutScale; } - public void animateWidgetDrop(ItemInfo info, CellLayout cellLayout, DragView dragView, + public void animateWidgetDrop(ItemInfo info, CellLayout cellLayout, final DragView dragView, final Runnable onCompleteRunnable, int animationType, final View finalView, boolean external) { Rect from = new Rect(); @@ -3363,7 +3360,7 @@ public class Workspace extends PagedView float scaleXY[] = new float[2]; boolean scalePreview = !(info instanceof PendingAddShortcutInfo); getFinalPositionForDropAnimation(finalPos, scaleXY, dragView, cellLayout, info, mTargetCell, - external, scalePreview); + scalePreview); Resources res = mLauncher.getResources(); final int duration = res.getInteger(R.integer.config_dropAnimMaxDuration) - 200; @@ -3387,7 +3384,7 @@ public class Workspace extends PagedView if (animationType == ANIMATE_INTO_POSITION_AND_REMAIN) { endStyle = DragLayer.ANIMATION_END_REMAIN_VISIBLE; } else { - endStyle = DragLayer.ANIMATION_END_DISAPPEAR;; + endStyle = DragLayer.ANIMATION_END_DISAPPEAR; } Runnable onComplete = new Runnable() { diff --git a/src/com/android/launcher3/dragndrop/DragLayer.java b/src/com/android/launcher3/dragndrop/DragLayer.java index adcc12cb6..1fcb5234e 100644 --- a/src/com/android/launcher3/dragndrop/DragLayer.java +++ b/src/com/android/launcher3/dragndrop/DragLayer.java @@ -578,10 +578,6 @@ public class DragLayer extends InsettableFrameLayout { resizeFrame.snapToWidget(false); } - public void animateViewIntoPosition(DragView dragView, final View child) { - animateViewIntoPosition(dragView, child, null, null); - } - public void animateViewIntoPosition(DragView dragView, final int[] pos, float alpha, float scaleX, float scaleY, int animationEndStyle, Runnable onFinishRunnable, int duration) { diff --git a/src/com/android/launcher3/dragndrop/DragView.java b/src/com/android/launcher3/dragndrop/DragView.java index f663d00d1..01189d0e9 100644 --- a/src/com/android/launcher3/dragndrop/DragView.java +++ b/src/com/android/launcher3/dragndrop/DragView.java @@ -329,10 +329,10 @@ public class DragView extends View { setTranslationY(touchY - mRegistrationY); // Post the animation to skip other expensive work happening on the first frame post(new Runnable() { - public void run() { - mAnim.start(); - } - }); + public void run() { + mAnim.start(); + } + }); } public void cancelAnimation() { |