Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 16dfec11 authored by Shai Barack's avatar Shai Barack
Browse files

Allow mutating system_textclassifier_enabled

Bug: 323623465
Bug: 325396961
Test: atest CtsTextClassifierTestCases
Test: atest TextClassificationConstantsTest

Change-Id: I7e4db0b0186d6d8babb44a3fdfd9110c3e9797c0
parent e8dbefd4
Loading
Loading
Loading
Loading
+5 −6
Original line number Diff line number Diff line
@@ -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,
@@ -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() {
+23 −0
Original line number Diff line number Diff line
@@ -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)
@@ -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 =
@@ -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);