diff options
author | Yvonne Wong <ywong@cyngn.com> | 2015-12-03 15:33:56 -0800 |
---|---|---|
committer | Gerrit Code Review <gerrit@cyanogenmod.org> | 2015-12-07 15:17:35 -0800 |
commit | fc97734c060268941d06f739866873d22aa84d7c (patch) | |
tree | f597f414e0b00aa50c183ce6402e2098f2de6a55 /packages | |
parent | 0fa8756f319ae34488f9079468d4b37768313d34 (diff) | |
download | vendor_cmsdk-fc97734c060268941d06f739866873d22aa84d7c.zip vendor_cmsdk-fc97734c060268941d06f739866873d22aa84d7c.tar.gz vendor_cmsdk-fc97734c060268941d06f739866873d22aa84d7c.tar.bz2 |
CMSettings: Add secure validators and relocate protected apps validator
Move validators from CMSettings.System into CMSettings,
add validators for CMSettings.Secure, and move protected apps validator
from CMSettings.System to CMSettings.Secure
Change-Id: I9f4e1bef7ff5be100376d2d03d34483d12938158
Diffstat (limited to 'packages')
-rw-r--r-- | packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java index 5c837bd..ff65aab 100644 --- a/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java +++ b/packages/CMSettingsProvider/src/org/cyanogenmod/cmsettings/CMSettingsProvider.java @@ -522,9 +522,11 @@ public class CMSettingsProvider extends ContentProvider { // Validate value if inserting int System table final String name = values.getAsString(Settings.NameValueTable.NAME); + final String value = values.getAsString(Settings.NameValueTable.VALUE); if (CMDatabaseHelper.CMTableNames.TABLE_SYSTEM.equals(tableName)) { - final String value = values.getAsString(Settings.NameValueTable.VALUE); validateSystemSettingNameValue(name, value); + } else if (CMDatabaseHelper.CMTableNames.TABLE_SECURE.equals(tableName)) { + validateSecureSettingValue(name, value); } SQLiteDatabase db = dbHelper.getWritableDatabase(); @@ -591,9 +593,11 @@ public class CMSettingsProvider extends ContentProvider { // Validate value if updating System table final String name = values.getAsString(Settings.NameValueTable.NAME); + final String value = values.getAsString(Settings.NameValueTable.VALUE); if (CMDatabaseHelper.CMTableNames.TABLE_SYSTEM.equals(tableName)) { - final String value = values.getAsString(Settings.NameValueTable.VALUE); validateSystemSettingNameValue(name, value); + } else if (CMDatabaseHelper.CMTableNames.TABLE_SECURE.equals(tableName)) { + validateSecureSettingValue(name, value); } int callingUserId = UserHandle.getCallingUserId(); @@ -792,7 +796,7 @@ public class CMSettingsProvider extends ContentProvider { } private void validateSystemSettingNameValue(String name, String value) { - CMSettings.System.Validator validator = CMSettings.System.VALIDATORS.get(name); + CMSettings.Validator validator = CMSettings.System.VALIDATORS.get(name); if (validator == null) { throw new IllegalArgumentException("Invalid setting: " + name); } @@ -803,5 +807,16 @@ public class CMSettingsProvider extends ContentProvider { } } + private void validateSecureSettingValue(String name, String value) { + CMSettings.Validator validator = CMSettings.Secure.VALIDATORS.get(name); + + // Not all secure settings have validators, but if a validator exists, the validate method + // should return true + if (validator != null && !validator.validate(value)) { + throw new IllegalArgumentException("Invalid value: " + value + + " for setting: " + name); + } + } + // TODO Add caching } |