Preventing widgets that don't fit from showing in tray. (Bug 6331357)
Change-Id: I9cbe85bed5c633f2be9b420eecbbee9a1b171e51
This commit is contained in:
committed by
The Android Automerger
parent
100c4e657d
commit
ff74520bf5
@@ -80,7 +80,7 @@ public class AppWidgetResizeFrame extends FrameLayout {
|
||||
mWorkspace = (Workspace) dragLayer.findViewById(R.id.workspace);
|
||||
|
||||
final AppWidgetProviderInfo info = widgetView.getAppWidgetInfo();
|
||||
int[] result = mLauncher.getMinSpanForWidget(info, null);
|
||||
int[] result = mLauncher.getMinSpanForWidget(info);
|
||||
mMinHSpan = result[0];
|
||||
mMinVSpan = result[1];
|
||||
|
||||
|
||||
@@ -480,7 +480,15 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
List<ResolveInfo> shortcuts = mPackageManager.queryIntentActivities(shortcutsIntent, 0);
|
||||
for (AppWidgetProviderInfo widget : widgets) {
|
||||
if (widget.minWidth > 0 && widget.minHeight > 0) {
|
||||
mWidgets.add(widget);
|
||||
// Ensure that all widgets we show can be added on a workspace of this size
|
||||
int[] spanXY = mLauncher.getSpanForWidget(widget);
|
||||
int[] minSpanXY = mLauncher.getMinSpanForWidget(widget);
|
||||
int minSpanX = Math.min(spanXY[0], minSpanXY[0]);
|
||||
int minSpanY = Math.min(spanXY[1], minSpanXY[1]);
|
||||
if (minSpanX < LauncherModel.getCellCountX() &&
|
||||
minSpanY < LauncherModel.getCellCountY()) {
|
||||
mWidgets.add(widget);
|
||||
}
|
||||
} else {
|
||||
Log.e(LOG_TAG, "Widget " + widget.provider + " has invalid dimensions (" +
|
||||
widget.minWidth + ", " + widget.minHeight + ")");
|
||||
@@ -1205,12 +1213,12 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
createItemInfo = new PendingAddWidgetInfo(info, null, null);
|
||||
|
||||
// Determine the widget spans and min resize spans.
|
||||
int[] spanXY = mLauncher.getSpanForWidget(info, null);
|
||||
int[] spanXY = mLauncher.getSpanForWidget(info);
|
||||
int[] size = mLauncher.getWorkspace().estimateItemSize(spanXY[0],
|
||||
spanXY[1], createItemInfo, true);
|
||||
createItemInfo.spanX = spanXY[0];
|
||||
createItemInfo.spanY = spanXY[1];
|
||||
int[] minSpanXY = mLauncher.getMinSpanForWidget(info, null);
|
||||
int[] minSpanXY = mLauncher.getMinSpanForWidget(info);
|
||||
createItemInfo.minSpanX = minSpanXY[0];
|
||||
createItemInfo.minSpanY = minSpanXY[1];
|
||||
|
||||
@@ -1297,7 +1305,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
|
||||
Object rawInfo = items.get(i);
|
||||
if (rawInfo instanceof AppWidgetProviderInfo) {
|
||||
AppWidgetProviderInfo info = (AppWidgetProviderInfo) rawInfo;
|
||||
int[] cellSpans = mLauncher.getSpanForWidget(info, null);
|
||||
int[] cellSpans = mLauncher.getSpanForWidget(info);
|
||||
|
||||
int maxWidth = Math.min(data.maxImageWidth,
|
||||
mWidgetSpacingLayout.estimateCellWidth(cellSpans[0]));
|
||||
|
||||
@@ -960,11 +960,7 @@ public final class Launcher extends Activity
|
||||
}
|
||||
}
|
||||
|
||||
int[] getSpanForWidget(ComponentName component, int minWidth, int minHeight, int[] spanXY) {
|
||||
if (spanXY == null) {
|
||||
spanXY = new int[2];
|
||||
}
|
||||
|
||||
int[] getSpanForWidget(ComponentName component, int minWidth, int minHeight) {
|
||||
Rect padding = AppWidgetHostView.getDefaultPaddingForWidget(this, component, null);
|
||||
// We want to account for the extra amount of padding that we are adding to the widget
|
||||
// to ensure that it gets the full amount of space that it has requested
|
||||
@@ -973,21 +969,21 @@ public final class Launcher extends Activity
|
||||
return CellLayout.rectToCell(getResources(), requiredWidth, requiredHeight, null);
|
||||
}
|
||||
|
||||
int[] getSpanForWidget(AppWidgetProviderInfo info, int[] spanXY) {
|
||||
return getSpanForWidget(info.provider, info.minWidth, info.minHeight, spanXY);
|
||||
int[] getSpanForWidget(AppWidgetProviderInfo info) {
|
||||
return getSpanForWidget(info.provider, info.minWidth, info.minHeight);
|
||||
}
|
||||
|
||||
int[] getMinSpanForWidget(AppWidgetProviderInfo info, int[] spanXY) {
|
||||
return getSpanForWidget(info.provider, info.minResizeWidth, info.minResizeHeight, spanXY);
|
||||
int[] getMinSpanForWidget(AppWidgetProviderInfo info) {
|
||||
return getSpanForWidget(info.provider, info.minResizeWidth, info.minResizeHeight);
|
||||
}
|
||||
|
||||
int[] getSpanForWidget(PendingAddWidgetInfo info, int[] spanXY) {
|
||||
return getSpanForWidget(info.componentName, info.minWidth, info.minHeight, spanXY);
|
||||
int[] getSpanForWidget(PendingAddWidgetInfo info) {
|
||||
return getSpanForWidget(info.componentName, info.minWidth, info.minHeight);
|
||||
}
|
||||
|
||||
int[] getMinSpanForWidget(PendingAddWidgetInfo info, int[] spanXY) {
|
||||
int[] getMinSpanForWidget(PendingAddWidgetInfo info) {
|
||||
return getSpanForWidget(info.componentName, info.minResizeWidth,
|
||||
info.minResizeHeight, spanXY);
|
||||
info.minResizeHeight);
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -1005,8 +1001,8 @@ public final class Launcher extends Activity
|
||||
// Calculate the grid spans needed to fit this widget
|
||||
CellLayout layout = getCellLayout(container, screen);
|
||||
|
||||
int[] minSpanXY = getMinSpanForWidget(appWidgetInfo, null);
|
||||
int[] spanXY = getSpanForWidget(appWidgetInfo, null);
|
||||
int[] minSpanXY = getMinSpanForWidget(appWidgetInfo);
|
||||
int[] spanXY = getSpanForWidget(appWidgetInfo);
|
||||
|
||||
// Try finding open space on Launcher screen
|
||||
// We have saved the position to which the widget was dragged-- this really only matters
|
||||
|
||||
Reference in New Issue
Block a user