From 6f6a06ac470df4f58a6eea902b79a8813c44c8f7 Mon Sep 17 00:00:00 2001 From: Jon Miranda Date: Thu, 15 Dec 2016 11:24:18 -0800 Subject: [PATCH] Restore original scaleRectAboutCenter method. Change-Id: Ibb49c56aab29d1223a0ab36476a32d565566eb25 --- src/com/android/launcher3/CellLayout.java | 5 ++--- src/com/android/launcher3/Utilities.java | 17 ++++++++++++++++- src/com/android/launcher3/Workspace.java | 5 ++--- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/com/android/launcher3/CellLayout.java b/src/com/android/launcher3/CellLayout.java index 2eed264928..11273fab6d 100644 --- a/src/com/android/launcher3/CellLayout.java +++ b/src/com/android/launcher3/CellLayout.java @@ -1029,8 +1029,7 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler { cellToRect(cellX, cellY, spanX, spanY, r); if (v instanceof LauncherAppWidgetHostView) { DeviceProfile profile = mLauncher.getDeviceProfile(); - Utilities.shrinkRectAboutCenter(r, profile.appWidgetScale.x, - profile.appWidgetScale.y); + Utilities.shrinkRect(r, profile.appWidgetScale.x, profile.appWidgetScale.y); } } else { // Find the top left corner of the rect the object will occupy @@ -1070,7 +1069,7 @@ public class CellLayout extends ViewGroup implements BubbleTextShadowHandler { r.set(left, top, left + dragOutline.getWidth(), top + dragOutline.getHeight()); } - Utilities.shrinkRectAboutCenter(r, mChildScale, mChildScale); + Utilities.scaleRectAboutCenter(r, mChildScale); mDragOutlineAnims[mDragOutlineCurrent].setTag(dragOutline); mDragOutlineAnims[mDragOutlineCurrent].animateIn(); diff --git a/src/com/android/launcher3/Utilities.java b/src/com/android/launcher3/Utilities.java index ce6d5a40fc..3e44e33be6 100644 --- a/src/com/android/launcher3/Utilities.java +++ b/src/com/android/launcher3/Utilities.java @@ -249,7 +249,22 @@ public final class Utilities { return delta; } - public static float shrinkRectAboutCenter(Rect r, float scaleX, float scaleY) { + public static void scaleRectAboutCenter(Rect r, float scale) { + if (scale != 1.0f) { + int cx = r.centerX(); + int cy = r.centerY(); + r.offset(-cx, -cy); + + r.left = (int) (r.left * scale + 0.5f); + r.top = (int) (r.top * scale + 0.5f); + r.right = (int) (r.right * scale + 0.5f); + r.bottom = (int) (r.bottom * scale + 0.5f); + + r.offset(cx, cy); + } + } + + public static float shrinkRect(Rect r, float scaleX, float scaleY) { float scale = Math.min(Math.min(scaleX, scaleY), 1.0f); if (scale < 1.0f) { int deltaX = (int) (r.width() * (scaleX - scale) * 0.5f); diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java index 3ba461a1ac..d019e59c81 100644 --- a/src/com/android/launcher3/Workspace.java +++ b/src/com/android/launcher3/Workspace.java @@ -403,8 +403,7 @@ public class Workspace extends PagedView float scale = 1; if (isWidget) { DeviceProfile profile = mLauncher.getDeviceProfile(); - scale = Utilities.shrinkRectAboutCenter(r, profile.appWidgetScale.x, - profile.appWidgetScale.y); + scale = Utilities.shrinkRect(r, profile.appWidgetScale.x, profile.appWidgetScale.y); } size[0] = r.width(); size[1] = r.height(); @@ -3499,7 +3498,7 @@ public class Workspace extends PagedView Rect r = estimateItemPosition(layout, targetCell[0], targetCell[1], spanX, spanY); if (info.itemType == LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET) { DeviceProfile profile = mLauncher.getDeviceProfile(); - Utilities.shrinkRectAboutCenter(r, profile.appWidgetScale.x, profile.appWidgetScale.y); + Utilities.shrinkRect(r, profile.appWidgetScale.x, profile.appWidgetScale.y); } loc[0] = r.left; loc[1] = r.top;