diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2016-03-10 12:02:29 -0800 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2016-03-18 11:06:01 -0700 |
commit | 4ddc40130aa0460924364eab3557088421eebe0c (patch) | |
tree | 4b8025aed86f3051c6826b151da50ab024418fbb /src/com/android/launcher3/widget | |
parent | 1bc8fc3de2113b7be9df304309a42276d642a8c4 (diff) | |
download | android_packages_apps_Trebuchet-4ddc40130aa0460924364eab3557088421eebe0c.tar.gz android_packages_apps_Trebuchet-4ddc40130aa0460924364eab3557088421eebe0c.tar.bz2 android_packages_apps_Trebuchet-4ddc40130aa0460924364eab3557088421eebe0c.zip |
Creating WidgetCellItem to wrap LauncherAppWidgetProviderInfo and resolveInfo
In PackageItemInfo,, using the user of the first item in the sub-list
Bug: 27585511
Change-Id: I8243f0e5c831af65661ae815489e53e9fcade837
Diffstat (limited to 'src/com/android/launcher3/widget')
-rw-r--r-- | src/com/android/launcher3/widget/WidgetCell.java | 49 | ||||
-rw-r--r-- | src/com/android/launcher3/widget/WidgetsListAdapter.java | 20 |
2 files changed, 17 insertions, 52 deletions
diff --git a/src/com/android/launcher3/widget/WidgetCell.java b/src/com/android/launcher3/widget/WidgetCell.java index 70eceb9ce..9ec03404a 100644 --- a/src/com/android/launcher3/widget/WidgetCell.java +++ b/src/com/android/launcher3/widget/WidgetCell.java @@ -17,8 +17,6 @@ package com.android.launcher3.widget; import android.content.Context; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; import android.content.res.Resources; import android.graphics.Bitmap; import android.util.AttributeSet; @@ -31,17 +29,15 @@ import android.widget.LinearLayout; import android.widget.TextView; import com.android.launcher3.DeviceProfile; -import com.android.launcher3.InvariantDeviceProfile; import com.android.launcher3.ItemInfo; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; -import com.android.launcher3.LauncherAppWidgetProviderInfo; import com.android.launcher3.SimpleOnStylusPressListener; import com.android.launcher3.R; import com.android.launcher3.StylusEventHelper; import com.android.launcher3.WidgetPreviewLoader; import com.android.launcher3.WidgetPreviewLoader.PreviewLoadRequest; -import com.android.launcher3.compat.AppWidgetManagerCompat; +import com.android.launcher3.model.WidgetItem; /** * Represents the individual cell of the widget inside the widget tray. The preview is drawn @@ -72,14 +68,13 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { private TextView mWidgetName; private TextView mWidgetDims; - private String mDimensionsFormatString; - private Object mInfo; + private WidgetItem mItem; private WidgetPreviewLoader mWidgetPreviewLoader; private PreviewLoadRequest mActiveRequest; private StylusEventHelper mStylusEventHelper; - private Launcher mLauncher; + private final Launcher mLauncher; public WidgetCell(Context context) { this(context, null); @@ -96,7 +91,6 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { mLauncher = (Launcher) context; mStylusEventHelper = new StylusEventHelper(new SimpleOnStylusPressListener(this), this); - mDimensionsFormatString = r.getString(R.string.widget_dims_format); setContainerWidth(); setWillNotDraw(false); setClipToPadding(false); @@ -136,33 +130,18 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { } } - /** - * Apply the widget provider info to the view. - */ - 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)); + public void applyFromCellItem(WidgetItem item, WidgetPreviewLoader loader) { + mItem = item; + mWidgetName.setText(mItem.label); + mWidgetDims.setText(getContext().getString(R.string.widget_dims_format, + mItem.spanX, mItem.spanY)); 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 (item.activityInfo != null) { + setTag(new PendingAddShortcutInfo(item.activityInfo)); + } else { + setTag(new PendingAddWidgetInfo(mLauncher, item.widgetInfo)); + } } public int[] getPreviewSize() { @@ -191,7 +170,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener { Log.d(TAG, String.format("[tag=%s] ensurePreview (%d, %d):", getTagToString(), size[0], size[1])); } - mActiveRequest = mWidgetPreviewLoader.getPreview(mInfo, size[0], size[1], this); + mActiveRequest = mWidgetPreviewLoader.getPreview(mItem, size[0], size[1], this); } @Override diff --git a/src/com/android/launcher3/widget/WidgetsListAdapter.java b/src/com/android/launcher3/widget/WidgetsListAdapter.java index 5d8adf504..de966f9f1 100644 --- a/src/com/android/launcher3/widget/WidgetsListAdapter.java +++ b/src/com/android/launcher3/widget/WidgetsListAdapter.java @@ -16,9 +16,6 @@ package com.android.launcher3.widget; import android.annotation.TargetApi; -import android.content.Context; -import android.content.pm.ResolveInfo; -import android.content.res.Resources; import android.os.Build; import android.support.v7.widget.RecyclerView; import android.support.v7.widget.RecyclerView.Adapter; @@ -30,14 +27,13 @@ import android.view.ViewGroup.LayoutParams; import android.widget.LinearLayout; import com.android.launcher3.BubbleTextView; -import com.android.launcher3.DeviceProfile; import com.android.launcher3.Launcher; import com.android.launcher3.LauncherAppState; -import com.android.launcher3.LauncherAppWidgetProviderInfo; import com.android.launcher3.R; import com.android.launcher3.Utilities; import com.android.launcher3.WidgetPreviewLoader; import com.android.launcher3.model.PackageItemInfo; +import com.android.launcher3.model.WidgetItem; import com.android.launcher3.model.WidgetsModel; import java.util.List; @@ -91,7 +87,7 @@ public class WidgetsListAdapter extends Adapter<WidgetsRowViewHolder> { @Override public void onBindViewHolder(WidgetsRowViewHolder holder, int pos) { - List<Object> infoList = mWidgetsModel.getSortedWidgets(pos); + List<WidgetItem> infoList = mWidgetsModel.getSortedWidgets(pos); ViewGroup row = ((ViewGroup) holder.getContent().findViewById(R.id.widgets_cell_list)); if (DEBUG) { @@ -136,17 +132,7 @@ public class WidgetsListAdapter extends Adapter<WidgetsRowViewHolder> { } for (int i=0; i < infoList.size(); i++) { WidgetCell widget = (WidgetCell) row.getChildAt(i); - if (infoList.get(i) instanceof LauncherAppWidgetProviderInfo) { - LauncherAppWidgetProviderInfo info = (LauncherAppWidgetProviderInfo) infoList.get(i); - PendingAddWidgetInfo pawi = new PendingAddWidgetInfo(mLauncher, info); - 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.applyFromCellItem(infoList.get(i), mWidgetPreviewLoader); widget.ensurePreview(); widget.setVisibility(View.VISIBLE); } |