Supporting custom widgets provided by launcher
-> This change provides integration for widgets provided by
the launcher package which can run arbitrary code.
Change-Id: I6052da5c4afed7ee72e3b44d045b9c46f2d84c42
diff --git a/src/com/android/launcher3/LauncherBackupHelper.java b/src/com/android/launcher3/LauncherBackupHelper.java
index c260fbc..7f3a798 100644
--- a/src/com/android/launcher3/LauncherBackupHelper.java
+++ b/src/com/android/launcher3/LauncherBackupHelper.java
@@ -906,7 +906,8 @@
/** Serialize a widget for persistence, including a checksum wrapper. */
private Widget packWidget(int dpi, WidgetPreviewLoader previewLoader, IconCache iconCache,
ComponentName provider) {
- final AppWidgetProviderInfo info = findAppWidgetProviderInfo(provider);
+ final LauncherAppWidgetProviderInfo info =
+ LauncherModel.getProviderInfo(mContext, provider);
Widget widget = new Widget();
widget.provider = provider.flattenToShortString();
widget.label = info.label;
@@ -1074,19 +1075,6 @@
return wrapper.payload;
}
- private AppWidgetProviderInfo findAppWidgetProviderInfo(ComponentName component) {
- if (mWidgetMap == null) {
- List<AppWidgetProviderInfo> widgets =
- AppWidgetManager.getInstance(mContext).getInstalledProviders();
- mWidgetMap = new HashMap<ComponentName, AppWidgetProviderInfo>(widgets.size());
- for (AppWidgetProviderInfo info : widgets) {
- mWidgetMap.put(info.provider, info);
- }
- }
- return mWidgetMap.get(component);
- }
-
-
private boolean initializeIconCache() {
if (mIconCache != null) {
return true;