summaryrefslogtreecommitdiffstats
path: root/packages/SettingsProvider
diff options
context:
space:
mode:
authorRoman Birg <roman@cyngn.com>2016-04-13 15:48:26 -0700
committerGerrit Code Review <gerrit@cyanogenmod.org>2016-04-14 13:15:04 -0700
commit999439bcdff8834771868b1e034ee97b81921fe3 (patch)
treed9872179f56fa4d086b48ff4eb92d50831919c22 /packages/SettingsProvider
parent83527974bf1222de4cc64844b18fc2c946f3b152 (diff)
downloadframeworks_base-999439bcdff8834771868b1e034ee97b81921fe3.zip
frameworks_base-999439bcdff8834771868b1e034ee97b81921fe3.tar.gz
frameworks_base-999439bcdff8834771868b1e034ee97b81921fe3.tar.bz2
SettingsProvider: move SYSTEM_PROFILES_ENABLED to CMSettings
When upgrading from 12.1 -> 13.0, we end up losing this setting because we forward all calls for that setting directly to the CMSettings table, which would not have a default set. Most of the code assumes profiles are on by default. So if the user had profiles disabled (and potentially in a state they were unaware of), the upgrade could cause some pains as it would ignore their old setting. Ticket: OPO-620 Change-Id: I2b645dc9422fe15daf62d89e77b3e1429c668c04 Signed-off-by: Roman Birg <roman@cyngn.com>
Diffstat (limited to 'packages/SettingsProvider')
-rw-r--r--packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java18
1 files changed, 18 insertions, 0 deletions
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
index 5c871ca..c075e0b 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java
@@ -2023,6 +2023,7 @@ public class SettingsProvider extends ContentProvider {
if ((oldVersion == newVersion || oldVersion == CM_SETTINGS_DB_VERSION)) {
if (oldVersion == CM_SETTINGS_DB_VERSION && !hasReplayedDefaultsFromL()) {
forceReplayAOSPDefaults(mUserId);
+ forceMigrateProfilesEnabled(mUserId);
setDefaultsReplayedFromLFlag();
}
return;
@@ -2221,6 +2222,23 @@ public class SettingsProvider extends ContentProvider {
}
}
+ private void forceMigrateProfilesEnabled(int userId) {
+ final SettingsState systemSettings = getSystemSettingsLocked(userId);
+ final Setting settingLocked = systemSettings.getSettingLocked(
+ CMSettings.System.SYSTEM_PROFILES_ENABLED);
+ if (settingLocked != null) {
+ final String value = settingLocked.getValue();
+ if (value != null) {
+ CMSettings.System.putStringForUser(getContext().getContentResolver(),
+ CMSettings.System.SYSTEM_PROFILES_ENABLED,
+ value,
+ userId);
+ systemSettings.deleteSettingLocked(
+ CMSettings.System.SYSTEM_PROFILES_ENABLED);
+ }
+ }
+ }
+
}
}
}