Snap for 7894766 from 49410e98e35ebcdd89c4718ed12f868efefe0d4a to sc-v2-release

Change-Id: I315e9067a696f200fb3f0eb165145f304fbd8d8c
diff --git a/java/tests/instrumentation/src/com/android/textclassifier/common/TextClassifierSettingsTest.java b/java/tests/instrumentation/src/com/android/textclassifier/common/TextClassifierSettingsTest.java
index 21d6943..8072d72 100644
--- a/java/tests/instrumentation/src/com/android/textclassifier/common/TextClassifierSettingsTest.java
+++ b/java/tests/instrumentation/src/com/android/textclassifier/common/TextClassifierSettingsTest.java
@@ -18,12 +18,11 @@
 
 import static com.google.common.truth.Truth.assertThat;
 
-import android.provider.DeviceConfig;
 import androidx.test.ext.junit.runners.AndroidJUnit4;
 import androidx.test.filters.SmallTest;
 import androidx.test.platform.app.InstrumentationRegistry;
+import com.android.textclassifier.testing.TestingDeviceConfig;
 import com.google.common.collect.ImmutableMap;
-import java.util.HashMap;
 import java.util.Map;
 import java.util.function.Consumer;
 import org.junit.After;
@@ -157,26 +156,11 @@
 
   private static void assertSettings(
       Map<String, String> keyValueMap, Consumer<TextClassifierSettings> settingsConsumer) {
-    HashMap<String, String> keyOriginalValueMap = new HashMap<>();
+    TestingDeviceConfig deviceConfig = new TestingDeviceConfig();
+    TextClassifierSettings settings = new TextClassifierSettings(deviceConfig);
     for (String key : keyValueMap.keySet()) {
-      keyOriginalValueMap.put(
-          key, DeviceConfig.getProperty(DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key));
+      deviceConfig.setConfig(key, keyValueMap.get(key));
     }
-    TextClassifierSettings settings = new TextClassifierSettings();
-    try {
-      for (String key : keyValueMap.keySet()) {
-        setDeviceConfig(key, keyValueMap.get(key));
-      }
-      settingsConsumer.accept(settings);
-    } finally {
-      for (String key : keyValueMap.keySet()) {
-        setDeviceConfig(key, keyOriginalValueMap.get(key));
-      }
-    }
-  }
-
-  private static void setDeviceConfig(String key, String value) {
-    DeviceConfig.setProperty(
-        DeviceConfig.NAMESPACE_TEXTCLASSIFIER, key, value, /* makeDefault */ false);
+    settingsConsumer.accept(settings);
   }
 }
diff --git a/java/tests/instrumentation/src/com/android/textclassifier/testing/TestingDeviceConfig.java b/java/tests/instrumentation/src/com/android/textclassifier/testing/TestingDeviceConfig.java
index 670e3d0..bdc422e 100644
--- a/java/tests/instrumentation/src/com/android/textclassifier/testing/TestingDeviceConfig.java
+++ b/java/tests/instrumentation/src/com/android/textclassifier/testing/TestingDeviceConfig.java
@@ -25,42 +25,64 @@
 /** A fake DeviceConfig implementation for testing purpose. */
 public final class TestingDeviceConfig implements TextClassifierSettings.IDeviceConfig {
 
-  private final HashMap<String, String> strConfigs;
-  private final HashMap<String, Boolean> boolConfigs;
+  private final HashMap<String, String> configs;
 
   public TestingDeviceConfig() {
-    this.strConfigs = new HashMap<>();
-    this.boolConfigs = new HashMap<>();
+    this.configs = new HashMap<>();
   }
 
   public void setConfig(String key, String value) {
-    strConfigs.put(key, value);
+    configs.put(key, value);
   }
 
   public void setConfig(String key, boolean value) {
-    boolConfigs.put(key, value);
+    configs.put(key, Boolean.toString(value));
+  }
+
+  public void setConfig(String key, int value) {
+    configs.put(key, Integer.toString(value));
+  }
+
+  public void setConfig(String key, float value) {
+    configs.put(key, Float.toString(value));
+  }
+
+  public void setConfig(String key, long value) {
+    configs.put(key, Long.toString(value));
   }
 
   @Override
   public Properties getProperties(@NonNull String namespace, @NonNull String... names) {
     Properties.Builder builder = new Properties.Builder(namespace);
-    for (String key : strConfigs.keySet()) {
-      builder.setString(key, strConfigs.get(key));
-    }
-    for (String key : boolConfigs.keySet()) {
-      builder.setBoolean(key, boolConfigs.get(key));
+    for (String key : configs.keySet()) {
+      builder.setString(key, configs.get(key));
     }
     return builder.build();
   }
 
   @Override
   public boolean getBoolean(@NonNull String namespace, @NonNull String name, boolean defaultValue) {
-    return boolConfigs.containsKey(name) ? boolConfigs.get(name) : defaultValue;
+    return configs.containsKey(name) ? Boolean.parseBoolean(configs.get(name)) : defaultValue;
   }
 
   @Override
   public String getString(
       @NonNull String namespace, @NonNull String name, @Nullable String defaultValue) {
-    return strConfigs.containsKey(name) ? strConfigs.get(name) : defaultValue;
+    return configs.containsKey(name) ? configs.get(name) : defaultValue;
+  }
+
+  @Override
+  public int getInt(@NonNull String namespace, @NonNull String name, int defaultValue) {
+    return configs.containsKey(name) ? Integer.parseInt(configs.get(name)) : defaultValue;
+  }
+
+  @Override
+  public float getFloat(@NonNull String namespace, @NonNull String name, float defaultValue) {
+    return configs.containsKey(name) ? Float.parseFloat(configs.get(name)) : defaultValue;
+  }
+
+  @Override
+  public long getLong(@NonNull String namespace, @NonNull String name, long defaultValue) {
+    return configs.containsKey(name) ? Long.parseLong(configs.get(name)) : defaultValue;
   }
 }