Loading core/java/android/view/textclassifier/TextClassificationConstants.java +5 −6 Original line number Diff line number Diff line Loading @@ -137,10 +137,6 @@ public final class TextClassificationConstants { properties.getBoolean( LOCAL_TEXT_CLASSIFIER_ENABLED, LOCAL_TEXT_CLASSIFIER_ENABLED_DEFAULT); sSystemTextClassifierEnabled = properties.getBoolean( SYSTEM_TEXT_CLASSIFIER_ENABLED, SYSTEM_TEXT_CLASSIFIER_ENABLED_DEFAULT); sModelDarkLaunchEnabled = properties.getBoolean( MODEL_DARK_LAUNCH_ENABLED, Loading Loading @@ -199,8 +195,11 @@ public final class TextClassificationConstants { } public boolean isSystemTextClassifierEnabled() { ensureMemoizedValues(); return sSystemTextClassifierEnabled; // Don't memoize this value because we want to be able to receive config // updates at runtime. return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_TEXTCLASSIFIER, SYSTEM_TEXT_CLASSIFIER_ENABLED, SYSTEM_TEXT_CLASSIFIER_ENABLED_DEFAULT); } public boolean isModelDarkLaunchEnabled() { Loading core/tests/coretests/src/android/view/textclassifier/TextClassificationConstantsTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import java.util.function.Consumer; import java.util.function.Predicate; @SmallTest @RunWith(AndroidJUnit4.class) Loading Loading @@ -74,6 +75,13 @@ public class TextClassificationConstantsTest { .isEqualTo(1)); } @Test public void runtimeMutableSettings() { assertOverride( TextClassificationConstants.SYSTEM_TEXT_CLASSIFIER_ENABLED, settings -> settings.isSystemTextClassifierEnabled()); } private static void assertSettings( String key, String value, Consumer<TextClassificationConstants> settingsConsumer) { final String originalValue = Loading @@ -87,6 +95,21 @@ public class TextClassificationConstantsTest { } } private static void assertOverride( String key, Predicate<TextClassificationConstants> settingsPredicate) { final String originalValue = DeviceConfig.getProperty(DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key); TextClassificationConstants settings = new TextClassificationConstants(); try { setDeviceConfig(key, "true"); assertThat(settingsPredicate.test(settings)).isTrue(); setDeviceConfig(key, "false"); assertThat(settingsPredicate.test(settings)).isFalse(); } finally { setDeviceConfig(key, originalValue); } } private static void setDeviceConfig(String key, String value) { DeviceConfig.setProperty( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, value, /* makeDefault */ false); Loading Loading
core/java/android/view/textclassifier/TextClassificationConstants.java +5 −6 Original line number Diff line number Diff line Loading @@ -137,10 +137,6 @@ public final class TextClassificationConstants { properties.getBoolean( LOCAL_TEXT_CLASSIFIER_ENABLED, LOCAL_TEXT_CLASSIFIER_ENABLED_DEFAULT); sSystemTextClassifierEnabled = properties.getBoolean( SYSTEM_TEXT_CLASSIFIER_ENABLED, SYSTEM_TEXT_CLASSIFIER_ENABLED_DEFAULT); sModelDarkLaunchEnabled = properties.getBoolean( MODEL_DARK_LAUNCH_ENABLED, Loading Loading @@ -199,8 +195,11 @@ public final class TextClassificationConstants { } public boolean isSystemTextClassifierEnabled() { ensureMemoizedValues(); return sSystemTextClassifierEnabled; // Don't memoize this value because we want to be able to receive config // updates at runtime. return DeviceConfig.getBoolean(DeviceConfig.NAMESPACE_TEXTCLASSIFIER, SYSTEM_TEXT_CLASSIFIER_ENABLED, SYSTEM_TEXT_CLASSIFIER_ENABLED_DEFAULT); } public boolean isModelDarkLaunchEnabled() { Loading
core/tests/coretests/src/android/view/textclassifier/TextClassificationConstantsTest.java +23 −0 Original line number Diff line number Diff line Loading @@ -28,6 +28,7 @@ import org.junit.Test; import org.junit.runner.RunWith; import java.util.function.Consumer; import java.util.function.Predicate; @SmallTest @RunWith(AndroidJUnit4.class) Loading Loading @@ -74,6 +75,13 @@ public class TextClassificationConstantsTest { .isEqualTo(1)); } @Test public void runtimeMutableSettings() { assertOverride( TextClassificationConstants.SYSTEM_TEXT_CLASSIFIER_ENABLED, settings -> settings.isSystemTextClassifierEnabled()); } private static void assertSettings( String key, String value, Consumer<TextClassificationConstants> settingsConsumer) { final String originalValue = Loading @@ -87,6 +95,21 @@ public class TextClassificationConstantsTest { } } private static void assertOverride( String key, Predicate<TextClassificationConstants> settingsPredicate) { final String originalValue = DeviceConfig.getProperty(DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key); TextClassificationConstants settings = new TextClassificationConstants(); try { setDeviceConfig(key, "true"); assertThat(settingsPredicate.test(settings)).isTrue(); setDeviceConfig(key, "false"); assertThat(settingsPredicate.test(settings)).isFalse(); } finally { setDeviceConfig(key, originalValue); } } private static void setDeviceConfig(String key, String value) { DeviceConfig.setProperty( DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, value, /* makeDefault */ false); Loading