Fixing widget minResizeWidth/Height interpretation (Issue 5327589)
Change-Id: I16bf9bb20baad4fa1e0676d98bb93de758af0ebc
diff --git a/src/com/android/launcher2/AppWidgetResizeFrame.java b/src/com/android/launcher2/AppWidgetResizeFrame.java
index c7dbc0f..4762193 100644
--- a/src/com/android/launcher2/AppWidgetResizeFrame.java
+++ b/src/com/android/launcher2/AppWidgetResizeFrame.java
@@ -64,11 +64,13 @@
public static final int RIGHT = 2;
public static final int BOTTOM = 3;
+ private Launcher mLauncher;
+
public AppWidgetResizeFrame(Context context, ItemInfo itemInfo,
LauncherAppWidgetHostView widgetView, CellLayout cellLayout, DragLayer dragLayer) {
super(context);
- mContext = context;
+ mLauncher = (Launcher) context;
mItemInfo = itemInfo;
mCellLayout = cellLayout;
mWidgetView = widgetView;
@@ -77,7 +79,7 @@
mWorkspace = (Workspace) dragLayer.findViewById(R.id.workspace);
final AppWidgetProviderInfo info = widgetView.getAppWidgetInfo();
- int[] result = mCellLayout.rectToCell(info.minResizeWidth, info.minResizeHeight, null);
+ int[] result = mLauncher.getMinResizeSpanForWidget(info, null);
mMinHSpan = result[0];
mMinVSpan = result[1];
@@ -123,7 +125,7 @@
mRightHandle.setVisibility(GONE);
}
- final float density = mContext.getResources().getDisplayMetrics().density;
+ final float density = mLauncher.getResources().getDisplayMetrics().density;
mBackgroundPadding = (int) Math.ceil(density * BACKGROUND_PADDING);
mTouchTargetWidth = 2 * mBackgroundPadding;
}
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index c3edb99..b6393ca 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -902,6 +902,10 @@
return getSpanForWidget(info.provider, info.minWidth, info.minHeight, spanXY);
}
+ int[] getMinResizeSpanForWidget(AppWidgetProviderInfo info, int[] spanXY) {
+ return getSpanForWidget(info.provider, info.minResizeWidth, info.minResizeHeight, spanXY);
+ }
+
int[] getSpanForWidget(PendingAddWidgetInfo info, int[] spanXY) {
return getSpanForWidget(info.componentName, info.minWidth, info.minHeight, spanXY);
}