diff options
author | Sunny Goyal <sunnygoyal@google.com> | 2015-05-12 10:39:59 -0700 |
---|---|---|
committer | Sunny Goyal <sunnygoyal@google.com> | 2015-05-12 10:40:43 -0700 |
commit | e2fba6cba10d9b7996ebb86dfd67bed96cff0ded (patch) | |
tree | c4650717b28db84145258e3064e75f4fcc6e9579 | |
parent | 44d0aacd5f44623ba87f1c8b3693d74df69d50e5 (diff) | |
download | android_packages_apps_Trebuchet-e2fba6cba10d9b7996ebb86dfd67bed96cff0ded.tar.gz android_packages_apps_Trebuchet-e2fba6cba10d9b7996ebb86dfd67bed96cff0ded.tar.bz2 android_packages_apps_Trebuchet-e2fba6cba10d9b7996ebb86dfd67bed96cff0ded.zip |
Prevent work folder creation when launcher is upgraded.
Change-Id: If7a91e0852dae1bf5dcf21e89c1771b5f37629f3
-rw-r--r-- | src/com/android/launcher3/LauncherProvider.java | 10 | ||||
-rw-r--r-- | src/com/android/launcher3/util/ManagedProfileHeuristic.java | 26 |
2 files changed, 34 insertions, 2 deletions
diff --git a/src/com/android/launcher3/LauncherProvider.java b/src/com/android/launcher3/LauncherProvider.java index f9f5ae1bb..8bc898855 100644 --- a/src/com/android/launcher3/LauncherProvider.java +++ b/src/com/android/launcher3/LauncherProvider.java @@ -52,6 +52,7 @@ import com.android.launcher3.LauncherSettings.Favorites; import com.android.launcher3.compat.UserHandleCompat; import com.android.launcher3.compat.UserManagerCompat; import com.android.launcher3.config.ProviderConfig; +import com.android.launcher3.util.ManagedProfileHeuristic; import com.android.launcher3.util.Thunk; import java.io.File; @@ -64,7 +65,7 @@ public class LauncherProvider extends ContentProvider { private static final String TAG = "Launcher.LauncherProvider"; private static final boolean LOGD = false; - private static final int DATABASE_VERSION = 24; + private static final int DATABASE_VERSION = 25; static final String OLD_AUTHORITY = "com.android.launcher2.settings"; static final String AUTHORITY = ProviderConfig.AUTHORITY; @@ -475,6 +476,9 @@ public class LauncherProvider extends ContentProvider { // Fresh and clean launcher DB. mMaxItemId = initializeMaxItemId(db); setFlagEmptyDbCreated(); + + // When a new DB is created, remove all previously stored managed profile information. + ManagedProfileHeuristic.processAllUsers(Collections.EMPTY_LIST, mContext); } private void addWorkspacesTable(SQLiteDatabase db) { @@ -620,7 +624,9 @@ public class LauncherProvider extends ContentProvider { } case 23: convertShortcutsToLauncherActivities(db); - case 24: { + case 24: + ManagedProfileHeuristic.markExistingUsersForNoFolderCreation(mContext); + case 25: { // DB Upgraded successfully return; } diff --git a/src/com/android/launcher3/util/ManagedProfileHeuristic.java b/src/com/android/launcher3/util/ManagedProfileHeuristic.java index cefa71c39..ae67ba04f 100644 --- a/src/com/android/launcher3/util/ManagedProfileHeuristic.java +++ b/src/com/android/launcher3/util/ManagedProfileHeuristic.java @@ -274,4 +274,30 @@ public class ManagedProfileHeuristic { keysOut.add(INSTALLED_PACKAGES_PREFIX + userSerial); keysOut.add(USER_FOLDER_ID_PREFIX + userSerial); } + + /** + * For each user, if a work folder has not been created, mark it such that the folder will + * never get created. + */ + public static void markExistingUsersForNoFolderCreation(Context context) { + UserManagerCompat userManager = UserManagerCompat.getInstance(context); + UserHandleCompat myUser = UserHandleCompat.myUserHandle(); + + SharedPreferences prefs = null; + for (UserHandleCompat user : userManager.getUserProfiles()) { + if (myUser.equals(user)) { + continue; + } + + if (prefs == null) { + prefs = context.getSharedPreferences( + LauncherFiles.MANAGED_USER_PREFERENCES_KEY, + Context.MODE_PRIVATE); + } + String folderIdKey = USER_FOLDER_ID_PREFIX + userManager.getSerialNumberForUser(user); + if (!prefs.contains(folderIdKey)) { + prefs.edit().putLong(folderIdKey, ItemInfo.NO_ID).apply(); + } + } + } } |