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