Merge "[Do NOT MERGE] Fixing AppWidgetInfo not initialized with proper user" into ub-launcher3-almonte
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java
index ee35457..1a341e7 100644
--- a/src/com/android/launcher3/LauncherModel.java
+++ b/src/com/android/launcher3/LauncherModel.java
@@ -2215,6 +2215,12 @@
 
                                 int appWidgetId = c.getInt(appWidgetIdIndex);
                                 serialNumber= c.getLong(profileIdIndex);
+                                user = mUserManager.getUserForSerialNumber(serialNumber);
+                                if (user == null) {
+                                    // User has been deleted remove the item.
+                                    itemsToRemove.add(id);
+                                    continue;
+                                }
                                 String savedProvider = c.getString(appWidgetProviderIndex);
                                 id = c.getLong(idIndex);
                                 final ComponentName component =
@@ -2230,7 +2236,7 @@
                                 final LauncherAppWidgetProviderInfo provider =
                                         LauncherModel.getProviderInfo(context,
                                                 ComponentName.unflattenFromString(savedProvider),
-                                                mUserManager.getUserForSerialNumber(serialNumber));
+                                                user);
 
                                 final boolean isProviderReady = isValidProvider(provider);
                                 if (!isSafeMode && !customWidget &&
@@ -2295,6 +2301,7 @@
                                     appWidgetInfo.cellY = c.getInt(cellYIndex);
                                     appWidgetInfo.spanX = c.getInt(spanXIndex);
                                     appWidgetInfo.spanY = c.getInt(spanYIndex);
+                                    appWidgetInfo.user = user;
 
                                     if (!customWidget) {
                                         int[] minSpan = Launcher.getMinSpanForWidget(context, provider);