summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3
diff options
context:
space:
mode:
authorSunny Goyal <sunnygoyal@google.com>2015-05-12 10:39:59 -0700
committerSunny Goyal <sunnygoyal@google.com>2015-05-12 10:40:43 -0700
commite2fba6cba10d9b7996ebb86dfd67bed96cff0ded (patch)
treec4650717b28db84145258e3064e75f4fcc6e9579 /src/com/android/launcher3
parent44d0aacd5f44623ba87f1c8b3693d74df69d50e5 (diff)
downloadandroid_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
Diffstat (limited to 'src/com/android/launcher3')
-rw-r--r--src/com/android/launcher3/LauncherProvider.java10
-rw-r--r--src/com/android/launcher3/util/ManagedProfileHeuristic.java26
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();
+ }
+ }
+ }
}