diff options
Diffstat (limited to 'src/com/android/launcher3/widget')
-rw-r--r-- | src/com/android/launcher3/widget/WidgetCell.java | 35 | ||||
-rw-r--r-- | src/com/android/launcher3/widget/WidgetsListAdapter.java | 16 |
2 files changed, 32 insertions, 19 deletions
diff --git a/src/com/android/launcher3/widget/WidgetCell.java b/src/com/android/launcher3/widget/WidgetCell.java index ec2bd70b1..70eceb9ce 100644 --- a/src/com/android/launcher3/widget/WidgetCell.java +++ b/src/com/android/launcher3/widget/WidgetCell.java @@ -137,23 +137,32 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { } /** - * Apply the widget provider info or the resolve info to the view. + * Apply the widget provider info to the view. */ - public void applyFromInfo(Object info, CharSequence label, - WidgetPreviewLoader loader) { + public void applyFromAppWidgetProviderInfo(LauncherAppWidgetProviderInfo info, + WidgetPreviewLoader loader) { + + InvariantDeviceProfile profile = + LauncherAppState.getInstance().getInvariantDeviceProfile(); mInfo = info; + // TODO(hyunyoungs): setup a cache for these labels. + mWidgetName.setText(AppWidgetManagerCompat.getInstance(getContext()).loadLabel(info)); + int hSpan = Math.min(info.spanX, profile.numColumns); + int vSpan = Math.min(info.spanY, profile.numRows); + mWidgetDims.setText(String.format(mDimensionsFormatString, hSpan, vSpan)); + mWidgetPreviewLoader = loader; + } + + /** + * Apply the resolve info to the view. + */ + public void applyFromResolveInfo( + PackageManager pm, ResolveInfo info, WidgetPreviewLoader loader) { + mInfo = info; + CharSequence label = info.loadLabel(pm); mWidgetName.setText(label); + mWidgetDims.setText(String.format(mDimensionsFormatString, 1, 1)); mWidgetPreviewLoader = loader; - if (info instanceof LauncherAppWidgetProviderInfo) { - InvariantDeviceProfile profile = - LauncherAppState.getInstance().getInvariantDeviceProfile(); - int hSpan = Math.min(((LauncherAppWidgetProviderInfo)info).spanX, profile.numColumns); - int vSpan = Math.min(((LauncherAppWidgetProviderInfo)info).spanY, profile.numRows); - mWidgetDims.setText(String.format(mDimensionsFormatString, hSpan, vSpan)); - } - if (info instanceof ResolveInfo) { - mWidgetDims.setText(String.format(mDimensionsFormatString, 1, 1)); - } } public int[] getPreviewSize() { diff --git a/src/com/android/launcher3/widget/WidgetsListAdapter.java b/src/com/android/launcher3/widget/WidgetsListAdapter.java index 33f2ae76d..ac9d62e9a 100644 --- a/src/com/android/launcher3/widget/WidgetsListAdapter.java +++ b/src/com/android/launcher3/widget/WidgetsListAdapter.java @@ -136,13 +136,17 @@ public class WidgetsListAdapter extends Adapter<WidgetsRowViewHolder> { } for (int i=0; i < infoList.size(); i++) { WidgetCell widget = (WidgetCell) row.getChildAt(i); - Object info = infoList.get(i); - if (info instanceof LauncherAppWidgetProviderInfo) { - widget.setTag(new PendingAddWidgetInfo(mLauncher, (LauncherAppWidgetProviderInfo)info, null)); - } else if (info instanceof ResolveInfo) { - widget.setTag(new PendingAddShortcutInfo(((ResolveInfo) info).activityInfo)); + if (infoList.get(i) instanceof LauncherAppWidgetProviderInfo) { + LauncherAppWidgetProviderInfo info = (LauncherAppWidgetProviderInfo) infoList.get(i); + PendingAddWidgetInfo pawi = new PendingAddWidgetInfo(mLauncher, info, null); + widget.setTag(pawi); + widget.applyFromAppWidgetProviderInfo(info, mWidgetPreviewLoader); + } else if (infoList.get(i) instanceof ResolveInfo) { + ResolveInfo info = (ResolveInfo) infoList.get(i); + PendingAddShortcutInfo pasi = new PendingAddShortcutInfo(info.activityInfo); + widget.setTag(pasi); + widget.applyFromResolveInfo(mLauncher.getPackageManager(), info, mWidgetPreviewLoader); } - widget.applyFromInfo(info, mWidgetsModel.getLabel(info), mWidgetPreviewLoader); widget.ensurePreview(); widget.setVisibility(View.VISIBLE); } |