diff options
Diffstat (limited to 'src/com/android/camera/settings/SettingsUpgrader.java')
-rw-r--r-- | src/com/android/camera/settings/SettingsUpgrader.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/com/android/camera/settings/SettingsUpgrader.java b/src/com/android/camera/settings/SettingsUpgrader.java index 2b8b92465..96797ace6 100644 --- a/src/com/android/camera/settings/SettingsUpgrader.java +++ b/src/com/android/camera/settings/SettingsUpgrader.java @@ -30,6 +30,15 @@ public abstract class SettingsUpgrader { private final String mVersionKey; private final int mTargetVersion; + // These values were in use by the original preferences management, before + // SettingsManager, to represent string-based booleans via typed string + // resource arrays. We no longer utilize such value arrays, and reference + // these constants only within SettingsUpgraders to convert to new string- + // based booleans. + protected static final String OLD_SETTINGS_VALUE_NONE = "none"; + protected static final String OLD_SETTINGS_VALUE_ON = "on"; + protected static final String OLD_SETTINGS_VALUE_OFF = "off"; + public SettingsUpgrader(String versionKey, int targetVersion) { mVersionKey = versionKey; mTargetVersion = targetVersion; @@ -98,4 +107,18 @@ public abstract class SettingsUpgrader { return value; } + /** + * A helper function that is used to remove a setting stored as a String, + * and return the value that was removed. + * <p> + * This is used in the upgrade path to change all underlying + * SharedPreferences values to Strings. It can be used by third party + * modules to upgrade their boolean settings to Strings. + */ + protected String removeString(SharedPreferences oldPreferencesLocation, String key) { + String value = oldPreferencesLocation.getString(key, null); + oldPreferencesLocation.edit().remove(key).apply(); + return value; + } + } |