aboutsummaryrefslogtreecommitdiffstats
path: root/packages
diff options
context:
space:
mode:
authorYvonne Wong <ywong@cyngn.com>2015-12-03 15:33:56 -0800
committerGerrit Code Review <gerrit@cyanogenmod.org>2015-12-07 15:17:35 -0800
commitfc97734c060268941d06f739866873d22aa84d7c (patch)
treef597f414e0b00aa50c183ce6402e2098f2de6a55 /packages
parent0fa8756f319ae34488f9079468d4b37768313d34 (diff)
downloadvendor_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.java21
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
}