Fix to ensure default widgets get size callbacks (issue 7287744)
Change-Id: I46b329db247a0b450493530ab619576c45418b01
This commit is contained in:
@@ -617,11 +617,22 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
Bundle options = null;
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
AppWidgetResizeFrame.getWidgetSizeRanges(mLauncher, info.spanX, info.spanY, mTmpRect);
|
||||
Rect padding = AppWidgetHostView.getDefaultPaddingForWidget(mLauncher,
|
||||
info.componentName, null);
|
||||
|
||||
float density = getResources().getDisplayMetrics().density;
|
||||
int xPaddingDips = (int) ((padding.left + padding.right) / density);
|
||||
int yPaddingDips = (int) ((padding.top + padding.bottom) / density);
|
||||
|
||||
options = new Bundle();
|
||||
options.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH, mTmpRect.left);
|
||||
options.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT, mTmpRect.top);
|
||||
options.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH, mTmpRect.right);
|
||||
options.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT, mTmpRect.bottom);
|
||||
options.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_WIDTH,
|
||||
mTmpRect.left - xPaddingDips);
|
||||
options.putInt(AppWidgetManager.OPTION_APPWIDGET_MIN_HEIGHT,
|
||||
mTmpRect.top - yPaddingDips);
|
||||
options.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_WIDTH,
|
||||
mTmpRect.right - xPaddingDips);
|
||||
options.putInt(AppWidgetManager.OPTION_APPWIDGET_MAX_HEIGHT,
|
||||
mTmpRect.bottom - yPaddingDips);
|
||||
}
|
||||
return options;
|
||||
}
|
||||
|
||||
@@ -1191,9 +1191,8 @@ public final class Launcher extends Activity
|
||||
|
||||
launcherInfo.hostView.setTag(launcherInfo);
|
||||
launcherInfo.hostView.setVisibility(View.VISIBLE);
|
||||
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
launcherInfo.notifyWidgetSizeChanged(this);
|
||||
}
|
||||
launcherInfo.notifyWidgetSizeChanged(this);
|
||||
|
||||
mWorkspace.addInScreen(launcherInfo.hostView, container, screen, cellXY[0], cellXY[1],
|
||||
launcherInfo.spanX, launcherInfo.spanY, isWorkspaceLocked());
|
||||
|
||||
|
||||
@@ -73,8 +73,7 @@ class LauncherAppWidgetInfo extends ItemInfo {
|
||||
* done so already (only really for default workspace widgets).
|
||||
*/
|
||||
void onBindAppWidget(Launcher launcher) {
|
||||
if (!mHasNotifiedInitialWidgetSizeChanged &&
|
||||
Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
|
||||
if (!mHasNotifiedInitialWidgetSizeChanged) {
|
||||
notifyWidgetSizeChanged(launcher);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2232,11 +2232,9 @@ public class Workspace extends SmoothPagedView
|
||||
|
||||
boolean foundCell = mTargetCell[0] >= 0 && mTargetCell[1] >= 0;
|
||||
|
||||
// if the widget resizes on drop, or the sdk level is less than JBMR1, then we
|
||||
// need to update the size.
|
||||
// if the widget resizes on drop
|
||||
if (foundCell && (cell instanceof AppWidgetHostView) &&
|
||||
(resultSpan[0] != item.spanX || resultSpan[1] != item.spanY ||
|
||||
Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1)) {
|
||||
(resultSpan[0] != item.spanX || resultSpan[1] != item.spanY)) {
|
||||
resizeOnDrop = true;
|
||||
item.spanX = resultSpan[0];
|
||||
item.spanY = resultSpan[1];
|
||||
@@ -3045,7 +3043,7 @@ public class Workspace extends SmoothPagedView
|
||||
}
|
||||
|
||||
final ItemInfo item = (ItemInfo) d.dragInfo;
|
||||
boolean updateWidgetSize = Build.VERSION.SDK_INT <= Build.VERSION_CODES.JELLY_BEAN;
|
||||
boolean updateWidgetSize = false;
|
||||
if (findNearestVacantCell) {
|
||||
int minSpanX = item.spanX;
|
||||
int minSpanY = item.spanY;
|
||||
|
||||
Reference in New Issue
Block a user