Merge "Allow restore of settings with nullable components" into pi-dev

am: 2d6dbbac04

Change-Id: I28f02ff934aed4e51395c6c1692f655cf35bbbed
This commit is contained in:
Annie Meng
2018-05-22 12:02:00 -07:00
committed by android-build-merger
3 changed files with 36 additions and 2 deletions

View File

@@ -23,6 +23,7 @@ import static android.provider.SettingsValidators.COMPONENT_NAME_VALIDATOR;
import static android.provider.SettingsValidators.LENIENT_IP_ADDRESS_VALIDATOR;
import static android.provider.SettingsValidators.LOCALE_VALIDATOR;
import static android.provider.SettingsValidators.NON_NEGATIVE_INTEGER_VALIDATOR;
import static android.provider.SettingsValidators.NULLABLE_COMPONENT_NAME_VALIDATOR;
import static android.provider.SettingsValidators.PACKAGE_NAME_VALIDATOR;
import static android.provider.SettingsValidators.URI_VALIDATOR;
@@ -5460,7 +5461,8 @@ public final class Settings {
@TestApi
public static final String AUTOFILL_SERVICE = "autofill_service";
private static final Validator AUTOFILL_SERVICE_VALIDATOR = COMPONENT_NAME_VALIDATOR;
private static final Validator AUTOFILL_SERVICE_VALIDATOR =
NULLABLE_COMPONENT_NAME_VALIDATOR;
/**
* Boolean indicating if Autofill supports field classification.
@@ -5958,7 +5960,7 @@ public final class Settings {
"accessibility_shortcut_target_service";
private static final Validator ACCESSIBILITY_SHORTCUT_TARGET_SERVICE_VALIDATOR =
COMPONENT_NAME_VALIDATOR;
NULLABLE_COMPONENT_NAME_VALIDATOR;
/**
* Setting specifying the accessibility service or feature to be toggled via the

View File

@@ -77,6 +77,11 @@ public class SettingsValidators {
}
};
/**
* Does not allow a setting to have a null {@link ComponentName}. Use {@link
* SettingsValidators#NULLABLE_COMPONENT_NAME_VALIDATOR} instead if a setting can have a
* nullable {@link ComponentName}.
*/
public static final Validator COMPONENT_NAME_VALIDATOR = new Validator() {
@Override
public boolean validate(@Nullable String value) {
@@ -84,6 +89,16 @@ public class SettingsValidators {
}
};
/**
* Allows a setting to have a null {@link ComponentName}.
*/
public static final Validator NULLABLE_COMPONENT_NAME_VALIDATOR = new Validator() {
@Override
public boolean validate(@Nullable String value) {
return value == null || COMPONENT_NAME_VALIDATOR.validate(value);
}
};
public static final Validator PACKAGE_NAME_VALIDATOR = new Validator() {
@Override
public boolean validate(@Nullable String value) {

View File

@@ -87,6 +87,23 @@ public class SettingsValidatorsTest {
assertFalse(SettingsValidators.LENIENT_IP_ADDRESS_VALIDATOR.validate(null));
}
@Test
public void testNullableComponentNameValidator_onValidComponentName_returnsTrue() {
assertTrue(SettingsValidators.NULLABLE_COMPONENT_NAME_VALIDATOR.validate(
"android/com.android.internal.backup.LocalTransport"));
}
@Test
public void testNullableComponentNameValidator_onInvalidComponentName_returnsFalse() {
assertFalse(SettingsValidators.NULLABLE_COMPONENT_NAME_VALIDATOR.validate(
"rectangle"));
}
@Test
public void testNullableComponentNameValidator_onNullValue_returnsTrue() {
assertTrue(SettingsValidators.NULLABLE_COMPONENT_NAME_VALIDATOR.validate(null));
}
@Test
public void testLocaleValidator() {
assertTrue(SettingsValidators.LOCALE_VALIDATOR.validate("en_US"));