Merge "Allow restore of settings with nullable components" into pi-dev
am: 2d6dbbac04
Change-Id: I28f02ff934aed4e51395c6c1692f655cf35bbbed
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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) {
|
||||
|
||||
@@ -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"));
|
||||
|
||||
Reference in New Issue
Block a user