diff options
author | Roman Birg <roman@cyngn.com> | 2016-04-13 15:48:26 -0700 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2016-04-14 13:15:04 -0700 |
commit | 999439bcdff8834771868b1e034ee97b81921fe3 (patch) | |
tree | d9872179f56fa4d086b48ff4eb92d50831919c22 /packages | |
parent | 83527974bf1222de4cc64844b18fc2c946f3b152 (diff) | |
download | frameworks_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')
-rw-r--r-- | packages/SettingsProvider/src/com/android/providers/settings/SettingsProvider.java | 18 |
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); + } + } + } + } } } |