diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2015-04-22 01:44:56 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-04-22 01:44:56 +0000 |
commit | 7372fc659ed16c2e14a64a3d78a2c63554005844 (patch) | |
tree | 0efd75c37f07562c0b080332e5fb0b4487776381 /src/com/android/launcher3/LauncherModel.java | |
parent | 9fcedccf5e6387a406e139df68127b04b6ffc1ee (diff) | |
parent | 7f834d2b3084f012b935e6e95f038f2eb4a0acfa (diff) | |
download | android_packages_apps_Trebuchet-7372fc659ed16c2e14a64a3d78a2c63554005844.tar.gz android_packages_apps_Trebuchet-7372fc659ed16c2e14a64a3d78a2c63554005844.tar.bz2 android_packages_apps_Trebuchet-7372fc659ed16c2e14a64a3d78a2c63554005844.zip |
Merge "Using a different userManager class as getUserForSerialNumber gives a valid userHandle for deleted user." into ub-launcher3-burnaby
Diffstat (limited to 'src/com/android/launcher3/LauncherModel.java')
-rw-r--r-- | src/com/android/launcher3/LauncherModel.java | 18 |
1 files changed, 14 insertions, 4 deletions
diff --git a/src/com/android/launcher3/LauncherModel.java b/src/com/android/launcher3/LauncherModel.java index 424f649fb..e5561e219 100644 --- a/src/com/android/launcher3/LauncherModel.java +++ b/src/com/android/launcher3/LauncherModel.java @@ -1866,6 +1866,11 @@ public class LauncherModel extends BroadcastReceiver final int optionsIndex = c.getColumnIndexOrThrow( LauncherSettings.Favorites.OPTIONS); + final LongSparseArray<UserHandleCompat> allUsers = new LongSparseArray<>(); + for (UserHandleCompat user : mUserManager.getUserProfiles()) { + allUsers.put(mUserManager.getSerialNumberForUser(user), user); + } + ShortcutInfo info; String intentDescription; LauncherAppWidgetInfo appWidgetInfo; @@ -1887,7 +1892,7 @@ public class LauncherModel extends BroadcastReceiver id = c.getLong(idIndex); intentDescription = c.getString(intentIndex); serialNumber = c.getInt(profileIdIndex); - user = mUserManager.getUserForSerialNumber(serialNumber); + user = allUsers.get(serialNumber); int promiseType = c.getInt(restoredIndex); int disabledState = 0; boolean itemReplaced = false; @@ -2150,23 +2155,28 @@ public class LauncherModel extends BroadcastReceiver LauncherSettings.Favorites.ITEM_TYPE_CUSTOM_APPWIDGET; int appWidgetId = c.getInt(appWidgetIdIndex); - serialNumber= c.getLong(profileIdIndex); + serialNumber = c.getLong(profileIdIndex); String savedProvider = c.getString(appWidgetProviderIndex); id = c.getLong(idIndex); + user = allUsers.get(serialNumber); + if (user == null) { + itemsToRemove.add(id); + continue; + } + final ComponentName component = ComponentName.unflattenFromString(savedProvider); final int restoreStatus = c.getInt(restoredIndex); final boolean isIdValid = (restoreStatus & LauncherAppWidgetInfo.FLAG_ID_NOT_VALID) == 0; - final boolean wasProviderReady = (restoreStatus & LauncherAppWidgetInfo.FLAG_PROVIDER_NOT_READY) == 0; final LauncherAppWidgetProviderInfo provider = LauncherModel.getProviderInfo(context, ComponentName.unflattenFromString(savedProvider), - mUserManager.getUserForSerialNumber(serialNumber)); + user); final boolean isProviderReady = isValidProvider(provider); if (!isSafeMode && !customWidget && |