mirror of
https://github.com/LawnchairLauncher/lawnchair.git
synced 2026-02-18 18:28:20 +00:00
Prevent work folder creation when launcher is upgraded.
Change-Id: If7a91e0852dae1bf5dcf21e89c1771b5f37629f3
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user