summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/widget/WidgetsModel.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/widget/WidgetsModel.java')
-rw-r--r--src/com/android/launcher3/widget/WidgetsModel.java122
1 files changed, 0 insertions, 122 deletions
diff --git a/src/com/android/launcher3/widget/WidgetsModel.java b/src/com/android/launcher3/widget/WidgetsModel.java
deleted file mode 100644
index 5a920e8d4..000000000
--- a/src/com/android/launcher3/widget/WidgetsModel.java
+++ /dev/null
@@ -1,122 +0,0 @@
-
-package com.android.launcher3.widget;
-
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.support.v7.widget.RecyclerView;
-import android.util.Log;
-
-import com.android.launcher3.IconCache;
-import com.android.launcher3.LauncherAppState;
-import com.android.launcher3.LauncherAppWidgetProviderInfo;
-import com.android.launcher3.compat.UserHandleCompat;
-import com.android.launcher3.model.AppNameComparator;
-import com.android.launcher3.model.WidgetsAndShortcutNameComparator;
-
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * Widgets data model that is used by the adapters of the widget views and controllers.
- *
- * <p> The widgets and shortcuts are organized using package name as its index.
- */
-public class WidgetsModel {
-
- private static final String TAG = "WidgetsModel";
- private static final boolean DEBUG = false;
-
- /* List of packages that is tracked by this model. */
- private List<PackageItemInfo> mPackageItemInfos = new ArrayList<>();
-
- /* Map of widgets and shortcuts that are tracked per package. */
- private Map<PackageItemInfo, ArrayList<Object>> mWidgetsList = new HashMap<>();
-
- /* Notifies the adapter when data changes. */
- private RecyclerView.Adapter mAdapter;
-
- private Comparator mWidgetAndShortcutNameComparator;
- private Comparator mAppNameComparator;
-
- private IconCache mIconCache;
-
- public WidgetsModel(Context context, RecyclerView.Adapter adapter) {
- mAdapter = adapter;
- mWidgetAndShortcutNameComparator = new WidgetsAndShortcutNameComparator(context);
- mAppNameComparator = (new AppNameComparator(context)).getAppInfoComparator();
- mIconCache = LauncherAppState.getInstance().getIconCache();
- }
-
- // Access methods that may be deleted if the private fields are made package-private.
- public int getPackageSize() {
- return mPackageItemInfos.size();
- }
-
- // Access methods that may be deleted if the private fields are made package-private.
- public PackageItemInfo getPackageItemInfo(int pos) {
- return mPackageItemInfos.get(pos);
- }
-
- public List<Object> getSortedWidgets(int pos) {
- return mWidgetsList.get(mPackageItemInfos.get(pos));
- }
-
- public void addWidgetsAndShortcuts(ArrayList<Object> widgetsShortcuts, PackageManager pm) {
- if (DEBUG) {
- Log.d(TAG, "addWidgetsAndShortcuts, widgetsShortcuts#=" + widgetsShortcuts.size());
- }
-
- // Temporary list for {@link PackageItemInfos} to avoid having to go through
- // {@link mPackageItemInfos} to locate the key to be used for {@link #mWidgetsList}
- HashMap<String, PackageItemInfo> tmpPackageItemInfos = new HashMap<>();
-
- // clear the lists.
- mWidgetsList.clear();
- mPackageItemInfos.clear();
-
- // add and update.
- for (Object o: widgetsShortcuts) {
- String packageName = "";
- if (o instanceof LauncherAppWidgetProviderInfo) {
- LauncherAppWidgetProviderInfo widgetInfo = (LauncherAppWidgetProviderInfo) o;
- packageName = widgetInfo.provider.getPackageName();
- } else if (o instanceof ResolveInfo) {
- ResolveInfo resolveInfo = (ResolveInfo) o;
- packageName = resolveInfo.activityInfo.packageName;
- } else {
- Log.e(TAG, String.format("addWidgetsAndShortcuts, nothing added for class=%s",
- o.getClass().toString()));
- }
-
- PackageItemInfo pInfo = tmpPackageItemInfos.get(packageName);
- ArrayList<Object> widgetsShortcutsList = mWidgetsList.get(pInfo);
- if (widgetsShortcutsList != null) {
- widgetsShortcutsList.add(o);
- } else {
- widgetsShortcutsList = new ArrayList<Object>();
- widgetsShortcutsList.add(o);
-
- pInfo = new PackageItemInfo(packageName);
- mIconCache.getTitleAndIconForApp(packageName, UserHandleCompat.myUserHandle(),
- true /* useLowResIcon */, pInfo);
- mWidgetsList.put(pInfo, widgetsShortcutsList);
- tmpPackageItemInfos.put(packageName, pInfo);
- mPackageItemInfos.add(pInfo);
- }
- }
-
- // sort.
- Collections.sort(mPackageItemInfos, mAppNameComparator);
- for (PackageItemInfo p: mPackageItemInfos) {
- Collections.sort(mWidgetsList.get(p), mWidgetAndShortcutNameComparator);
- }
-
- // notify.
- mAdapter.notifyDataSetChanged();
- }
-} \ No newline at end of file