summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/com/android/launcher2/AppsCustomizePagedView.java9
-rw-r--r--src/com/android/launcher2/Launcher.java33
-rw-r--r--src/com/android/launcher2/LauncherAppWidgetHostView.java2
3 files changed, 28 insertions, 16 deletions
diff --git a/src/com/android/launcher2/AppsCustomizePagedView.java b/src/com/android/launcher2/AppsCustomizePagedView.java
index df98c89ff..d3e096300 100644
--- a/src/com/android/launcher2/AppsCustomizePagedView.java
+++ b/src/com/android/launcher2/AppsCustomizePagedView.java
@@ -492,8 +492,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
int h = preview.getIntrinsicHeight();
if (createItemInfo instanceof PendingAddWidgetInfo) {
PendingAddWidgetInfo createWidgetInfo = (PendingAddWidgetInfo) createItemInfo;
- int[] spanXY = CellLayout.rectToCell(getResources(),
- createWidgetInfo.minWidth, createWidgetInfo.minHeight, null);
+ int[] spanXY = mLauncher.getSpanForWidget(createWidgetInfo, null);
createItemInfo.spanX = spanXY[0];
createItemInfo.spanY = spanXY[1];
@@ -986,8 +985,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
Object rawInfo = items.get(i);
if (rawInfo instanceof AppWidgetProviderInfo) {
AppWidgetProviderInfo info = (AppWidgetProviderInfo) rawInfo;
- int[] cellSpans = CellLayout.rectToCell(getResources(),
- info.minWidth, info.minHeight, null);
+ int[] cellSpans = mLauncher.getSpanForWidget(info, null);
images.add(getWidgetPreview(info, cellSpans[0],cellSpans[1],
cellWidth, cellHeight));
} else if (rawInfo instanceof ResolveInfo) {
@@ -1017,8 +1015,7 @@ public class AppsCustomizePagedView extends PagedViewWithDraggableItems implemen
// Fill in the widget information
AppWidgetProviderInfo info = (AppWidgetProviderInfo) rawInfo;
createItemInfo = new PendingAddWidgetInfo(info, null, null, "13");
- int[] cellSpans = CellLayout.rectToCell(getResources(),
- info.minWidth, info.minHeight, null);
+ int[] cellSpans = mLauncher.getSpanForWidget(info, null);
FastBitmapDrawable preview = new FastBitmapDrawable(data.generatedImages.get(i));
widget.applyFromAppWidgetProviderInfo(info, preview, -1, cellSpans,
mHolographicOutlineHelper);
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java
index d0b33a8d7..637d95607 100644
--- a/src/com/android/launcher2/Launcher.java
+++ b/src/com/android/launcher2/Launcher.java
@@ -852,14 +852,13 @@ public final class Launcher extends Activity
int bottom = 0;
}
- Padding getPaddingForWidget(AppWidgetProviderInfo widgetInfo) {
+ Padding getPaddingForWidget(ComponentName component) {
PackageManager packageManager = getPackageManager();
Padding p = new Padding();
android.content.pm.ApplicationInfo appInfo;
try {
- appInfo = packageManager.getApplicationInfo(
- widgetInfo.provider.getPackageName(), 0);
+ appInfo = packageManager.getApplicationInfo(component.getPackageName(), 0);
} catch (Exception e) {
// if we can't find the package, return 0 padding
return p;
@@ -878,6 +877,27 @@ public final class Launcher extends Activity
return p;
}
+ int[] getSpanForWidget(ComponentName component, int minWidth, int minHeight, int[] spanXY) {
+ if (spanXY == null) {
+ spanXY = new int[2];
+ }
+
+ Padding padding = getPaddingForWidget(component);
+ // 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
+ int requiredWidth = minWidth + padding.left + padding.right;
+ int requiredHeight = minHeight + padding.top + padding.bottom;
+ return CellLayout.rectToCell(getResources(), requiredWidth, requiredHeight, null);
+ }
+
+ int[] getSpanForWidget(AppWidgetProviderInfo info, int[] spanXY) {
+ return getSpanForWidget(info.provider, info.minWidth, info.minHeight, spanXY);
+ }
+
+ int[] getSpanForWidget(PendingAddWidgetInfo info, int[] spanXY) {
+ return getSpanForWidget(info.componentName, info.minWidth, info.minHeight, spanXY);
+ }
+
/**
* Add a widget to the workspace.
*
@@ -890,12 +910,7 @@ public final class Launcher extends Activity
// Calculate the grid spans needed to fit this widget
CellLayout layout = getCellLayout(container, screen);
- Padding padding = getPaddingForWidget(appWidgetInfo);
- // 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
- int requiredWidth = appWidgetInfo.minWidth + padding.left + padding.right;
- int requiredHeight = appWidgetInfo.minHeight + padding.top + padding.bottom;
- int[] spanXY = layout.rectToCell(requiredWidth, requiredHeight, null);
+ int[] spanXY = getSpanForWidget(appWidgetInfo, null);
// Try finding open space on Launcher screen
// We have saved the position to which the widget was dragged-- this really only matters
diff --git a/src/com/android/launcher2/LauncherAppWidgetHostView.java b/src/com/android/launcher2/LauncherAppWidgetHostView.java
index a84ced671..7118c49fc 100644
--- a/src/com/android/launcher2/LauncherAppWidgetHostView.java
+++ b/src/com/android/launcher2/LauncherAppWidgetHostView.java
@@ -119,7 +119,7 @@ public class LauncherAppWidgetHostView extends AppWidgetHostView {
public void setAppWidget(int appWidgetId, AppWidgetProviderInfo info) {
super.setAppWidget(appWidgetId, info);
// We add necessary padding to the AppWidgetHostView
- Launcher.Padding padding = mLauncher.getPaddingForWidget(info);
+ Launcher.Padding padding = mLauncher.getPaddingForWidget(info.provider);
setPadding(padding.left, padding.top, padding.right, padding.bottom);
}