Fixing crashloop due to ag/2750101
Change-Id: Idebf6bfad4e56a52780b848fbb09b3a0134ffdc2
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 0841f4f..28b4482 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -3328,7 +3328,7 @@
break;
}
case LauncherSettings.Favorites.ITEM_TYPE_APPWIDGET: {
- view = bindAppWidget((LauncherAppWidgetInfo) item);
+ view = inflateAppWidget((LauncherAppWidgetInfo) item);
if (view == null) {
continue;
}
@@ -3402,13 +3402,19 @@
/**
* Add the views for a widget to the workspace.
*/
- public View bindAppWidget(LauncherAppWidgetInfo item) {
+ public void bindAppWidget(LauncherAppWidgetInfo item) {
+ View view = inflateAppWidget(item);
+ if (view != null) {
+ mWorkspace.addInScreen(view, item);
+ mWorkspace.requestLayout();
+ }
+ }
+
+ private View inflateAppWidget(LauncherAppWidgetInfo item) {
if (mIsSafeModeEnabled) {
PendingAppWidgetHostView view =
new PendingAppWidgetHostView(this, item, mIconCache, true);
prepareAppWidget(view, item);
- mWorkspace.addInScreen(view, item);
- mWorkspace.requestLayout();
return view;
}
@@ -3517,8 +3523,6 @@
view = new PendingAppWidgetHostView(this, item, mIconCache, false);
}
prepareAppWidget(view, item);
- mWorkspace.addInScreen(view, item);
- mWorkspace.requestLayout();
if (DEBUG_WIDGETS) {
Log.d(TAG, "bound widget id="+item.appWidgetId+" in "