summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/widget
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2016-03-10 12:02:29 -0800
committerSunny Goyal <sunnygoyal@google.com>2016-03-18 11:06:01 -0700
commit4ddc40130aa0460924364eab3557088421eebe0c (patch)
tree4b8025aed86f3051c6826b151da50ab024418fbb /src/com/android/launcher3/widget
parent1bc8fc3de2113b7be9df304309a42276d642a8c4 (diff)
downloadandroid_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.java49
-rw-r--r--src/com/android/launcher3/widget/WidgetsListAdapter.java20
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);
}