• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 package com.android.launcher3.model;
2 
3 import android.content.pm.ActivityInfo;
4 import android.content.pm.PackageManager;
5 
6 import com.android.launcher3.InvariantDeviceProfile;
7 import com.android.launcher3.LauncherAppWidgetProviderInfo;
8 import com.android.launcher3.Utilities;
9 import com.android.launcher3.icons.IconCache;
10 import com.android.launcher3.pm.ShortcutConfigActivityInfo;
11 import com.android.launcher3.util.ComponentKey;
12 
13 /**
14  * An wrapper over various items displayed in a widget picker,
15  * {@link LauncherAppWidgetProviderInfo} & {@link ActivityInfo}. This provides easier access to
16  * common attributes like spanX and spanY.
17  */
18 public class WidgetItem extends ComponentKey {
19 
20     public final LauncherAppWidgetProviderInfo widgetInfo;
21     public final ShortcutConfigActivityInfo activityInfo;
22 
23     public final String label;
24     public final int spanX, spanY;
25 
WidgetItem(LauncherAppWidgetProviderInfo info, InvariantDeviceProfile idp, IconCache iconCache)26     public WidgetItem(LauncherAppWidgetProviderInfo info,
27             InvariantDeviceProfile idp, IconCache iconCache) {
28         super(info.provider, info.getProfile());
29 
30         label = iconCache.getTitleNoCache(info);
31         widgetInfo = info;
32         activityInfo = null;
33 
34         spanX = Math.min(info.spanX, idp.numColumns);
35         spanY = Math.min(info.spanY, idp.numRows);
36     }
37 
WidgetItem(ShortcutConfigActivityInfo info, IconCache iconCache, PackageManager pm)38     public WidgetItem(ShortcutConfigActivityInfo info, IconCache iconCache, PackageManager pm) {
39         super(info.getComponent(), info.getUser());
40         label = info.isPersistable() ? iconCache.getTitleNoCache(info) :
41                 Utilities.trim(info.getLabel(pm));
42         widgetInfo = null;
43         activityInfo = info;
44         spanX = spanY = 1;
45     }
46 }
47