diff --git a/tools/aconfig/src/codegen_java.rs b/tools/aconfig/src/codegen_java.rs index 15eb2d65ba..8ab6ffa8f7 100644 --- a/tools/aconfig/src/codegen_java.rs +++ b/tools/aconfig/src/codegen_java.rs @@ -233,8 +233,9 @@ mod tests { let expected_featureflagsimpl_content = r#" package com.android.aconfig.test; import static java.util.stream.Collectors.toMap; - import java.util.stream.Stream; import java.util.HashMap; + import java.util.Map; + import java.util.stream.Stream; public final class FeatureFlagsImpl implements FeatureFlags { @Override public boolean disabledRo() { @@ -258,6 +259,11 @@ mod tests { } this.mFlagMap.put(flagName, value); } + public void resetAll() { + for (Map.Entry entry : mFlagMap.entrySet()) { + entry.setValue(null); + } + } private boolean getFlag(String flagName) { Boolean value = this.mFlagMap.get(flagName); if (value == null) { diff --git a/tools/aconfig/templates/FeatureFlags.java.template b/tools/aconfig/templates/FeatureFlags.java.template index b9e2cc792f..e0f201fc88 100644 --- a/tools/aconfig/templates/FeatureFlags.java.template +++ b/tools/aconfig/templates/FeatureFlags.java.template @@ -1,7 +1,7 @@ package {package_name}; public interface FeatureFlags \{ - {{ for item in class_elements}} +{{ for item in class_elements}} boolean {item.method_name}(); - {{ endfor }} -} \ No newline at end of file +{{ endfor }} +} diff --git a/tools/aconfig/templates/FeatureFlagsImpl.java.template b/tools/aconfig/templates/FeatureFlagsImpl.java.template index dafd99e71b..082d476de5 100644 --- a/tools/aconfig/templates/FeatureFlagsImpl.java.template +++ b/tools/aconfig/templates/FeatureFlagsImpl.java.template @@ -2,15 +2,16 @@ package {package_name}; {{ -if is_test_mode }} import static java.util.stream.Collectors.toMap; -import java.util.stream.Stream; import java.util.HashMap; +import java.util.Map; +import java.util.stream.Stream; {{ else}} {{ if is_read_write- }} import android.provider.DeviceConfig; {{ -endif- }} {{ endif }} public final class FeatureFlagsImpl implements FeatureFlags \{ - {{ for item in class_elements}} +{{ for item in class_elements}} @Override public boolean {item.method_name}() \{ {{ -if not is_test_mode- }} @@ -20,16 +21,15 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ "{item.device_config_flag}", {item.default_value} ); - {{ else }} + {{ -else }} return {item.default_value}; {{ -endif- }} {{ else }} return getFlag(Flags.FLAG_{item.flag_name_constant_suffix}); {{ -endif }} } - {{ endfor }} - - {{ if is_test_mode- }} +{{ endfor- }} +{{ if is_test_mode }} public void setFlag(String flagName, boolean value) \{ if (!this.mFlagMap.containsKey(flagName)) \{ throw new IllegalArgumentException("no such flag" + flagName); @@ -37,6 +37,12 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ this.mFlagMap.put(flagName, value); } + public void resetAll() \{ + for (Map.Entry entry : mFlagMap.entrySet()) \{ + entry.setValue(null); + } + } + private boolean getFlag(String flagName) \{ Boolean value = this.mFlagMap.get(flagName); if (value == null) \{ @@ -55,7 +61,5 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ (map, elem) -> map.put(elem, null), HashMap::putAll ); - {{ -endif }} +{{ -endif }} } - - diff --git a/tools/aconfig/templates/Flags.java.template b/tools/aconfig/templates/Flags.java.template index eef98eb635..c244b15156 100644 --- a/tools/aconfig/templates/Flags.java.template +++ b/tools/aconfig/templates/Flags.java.template @@ -1,15 +1,15 @@ package {package_name}; public final class Flags \{ - {{- for item in class_elements}} +{{- for item in class_elements}} public static final String FLAG_{item.flag_name_constant_suffix} = "{item.device_config_flag}"; - {{- endfor }} - {{ for item in class_elements}} +{{- endfor }} +{{ for item in class_elements}} public static boolean {item.method_name}() \{ return FEATURE_FLAGS.{item.method_name}(); } - {{ endfor }} - {{ if is_test_mode }} +{{ endfor }} +{{ -if is_test_mode }} public static void setFeatureFlagsImpl(FeatureFlags featureFlags) \{ Flags.FEATURE_FLAGS = featureFlags; } @@ -17,8 +17,7 @@ public final class Flags \{ public static void unsetFeatureFlagsImpl() \{ Flags.FEATURE_FLAGS = null; } - {{ -endif}} - +{{ endif}} private static FeatureFlags FEATURE_FLAGS{{ -if not is_test_mode }} = new FeatureFlagsImpl(){{ -endif- }}; }