diff options
author | Adam Cohen <adamcohen@google.com> | 2011-09-01 13:48:05 -0700 |
---|---|---|
committer | Adam Cohen <adamcohen@google.com> | 2011-09-01 13:54:32 -0700 |
commit | f814aa0f33c020a60de8a921176345f71a4b07c8 (patch) | |
tree | 5a21708576c72c594129bb0793bd2210685501ef /src/com/android/launcher2/Launcher.java | |
parent | 5037a0b02a720ae14cbf673d7d5bb148f5a524c8 (diff) | |
download | packages_apps_trebuchet-f814aa0f33c020a60de8a921176345f71a4b07c8.zip packages_apps_trebuchet-f814aa0f33c020a60de8a921176345f71a4b07c8.tar.gz packages_apps_trebuchet-f814aa0f33c020a60de8a921176345f71a4b07c8.tar.bz2 |
Unifying widget cell requirement computations
Change-Id: I5b37ebdab5b3defe7d05926882a6587d4c9f1081
Diffstat (limited to 'src/com/android/launcher2/Launcher.java')
-rw-r--r-- | src/com/android/launcher2/Launcher.java | 33 |
1 files changed, 24 insertions, 9 deletions
diff --git a/src/com/android/launcher2/Launcher.java b/src/com/android/launcher2/Launcher.java index d0b33a8..637d956 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 |