Loading tools/aconfig/templates/FeatureFlags.java.template +3 −3 Original line number Diff line number Diff line Loading @@ -5,10 +5,10 @@ import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public interface FeatureFlags \{ {{ for item in flag_elements }} {{ if library_exported }} {{ -if library_exported }} @UnsupportedAppUsage boolean {item.method_name}(); {{ else }} {{ -else }} {{ -if not item.is_read_write }} {{ -if item.default_value }} @com.android.aconfig.annotations.AssumeTrueForR8 Loading @@ -19,5 +19,5 @@ public interface FeatureFlags \{ @UnsupportedAppUsage boolean {item.method_name}(); {{ endif }} {{ endfor }} {{ -endfor }} } tools/aconfig/templates/FeatureFlagsImpl.java.template +24 −27 Original line number Diff line number Diff line package {package_name}; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; {{ if not is_test_mode }} {{ if runtime_lookup_required- }} {{ -if not is_test_mode }} {{ -if runtime_lookup_required }} import android.provider.DeviceConfig; import android.provider.DeviceConfig.Properties; {{ endif }} Loading @@ -14,31 +14,29 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ {{ -endfor- }} {{ for flag in flag_elements }} {{ if library_exported }} {{ -if library_exported }} private static boolean {flag.method_name} = false; {{ else }} {{ -else }} {{- if flag.is_read_write }} private static boolean {flag.method_name} = {flag.default_value}; {{- endif- }} {{ endif }} {{ endfor }} {{ -endif }} {{ -endfor }} {{ for namespace_with_flags in namespace_flags }} private void load_overrides_{namespace_with_flags.namespace}() \{ try \{ Properties properties = DeviceConfig.getProperties("{namespace_with_flags.namespace}"); {{ -for flag in namespace_with_flags.flags }} {{ if library_exported }} {{ -if library_exported }} {flag.method_name} = properties.getBoolean("{flag.device_config_flag}", false); {{ else }} {{ if flag.is_read_write }} {{ -else }} {{ -if flag.is_read_write }} {flag.method_name} = properties.getBoolean("{flag.device_config_flag}", {flag.default_value}); {{ endif }} {{ endif }} {{ endfor }} {{ -endif }} {{ -endif }} {{ -endfor }} } catch (NullPointerException e) \{ throw new RuntimeException( "Cannot read value from namespace {namespace_with_flags.namespace} " Loading @@ -52,9 +50,8 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ {namespace_with_flags.namespace}_is_cached = true; } {{ endfor- }} {{ endif- }} {{ for flag in flag_elements }} {{ -endif }}{#- end of runtime_lookup_required #} {{ -for flag in flag_elements }} @Override @UnsupportedAppUsage public boolean {flag.method_name}() \{ Loading @@ -63,13 +60,13 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ load_overrides_{flag.device_config_namespace}(); } return {flag.method_name}; {{ else }} {{ -else }} {{ -if flag.is_read_write }} if (!{flag.device_config_namespace}_is_cached) \{ load_overrides_{flag.device_config_namespace}(); } return {flag.method_name}; {{ else }} {{ -else }} return {flag.default_value}; {{ -endif- }} {{ -endif }} Loading tools/aconfig/templates/Flags.java.template +9 −8 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ public final class Flags \{ /** @hide */ public static final String FLAG_{item.flag_name_constant_suffix} = "{item.device_config_flag}"; {{- endfor }} {{ for item in flag_elements}} {{ -if library_exported }} {{ -for item in flag_elements}} {{ if library_exported }} @UnsupportedAppUsage public static boolean {item.method_name}() \{ return FEATURE_FLAGS.{item.method_name}(); Loading @@ -21,14 +21,14 @@ public final class Flags \{ @com.android.aconfig.annotations.AssumeTrueForR8 {{ -else }} @com.android.aconfig.annotations.AssumeFalseForR8 {{ -endif- }} {{ endif }} {{ -endif }} {{ -endif }} @UnsupportedAppUsage public static boolean {item.method_name}() \{ return FEATURE_FLAGS.{item.method_name}(); } {{ endif }} {{ endfor }} {{ -endif }} {{ -endfor }} {{ -if is_test_mode }} public static void setFeatureFlags(FeatureFlags featureFlags) \{ Flags.FEATURE_FLAGS = featureFlags; Loading @@ -37,7 +37,8 @@ public final class Flags \{ public static void unsetFeatureFlags() \{ Flags.FEATURE_FLAGS = null; } {{ endif }} {{ -endif }} private static FeatureFlags FEATURE_FLAGS{{ -if not is_test_mode }} = new FeatureFlagsImpl(){{ -endif- }}; } tools/aconfig/templates/cpp_exported_header.template +17 −19 Original line number Diff line number Diff line Loading @@ -6,13 +6,11 @@ #define {package_macro}(FLAG) {package_macro}_##FLAG #endif {{ for item in class_elements }} {{ if item.is_fixed_read_only- }} {{ -if item.is_fixed_read_only }} #ifndef {package_macro}_{item.flag_macro} #define {package_macro}_{item.flag_macro} {item.default_value} #endif {{ -endif }} {{ -endfor }} {{ -endif }} {{ -endif }} Loading @@ -26,15 +24,15 @@ namespace {cpp_namespace} \{ class flag_provider_interface \{ public: virtual ~flag_provider_interface() = default; {{ for item in class_elements}} {{ -for item in class_elements}} virtual bool {item.flag_name}() = 0; {{ if is_test_mode }} {{ -if is_test_mode }} virtual void {item.flag_name}(bool val) = 0; {{ -endif }} {{ -endfor }} {{ if is_test_mode }} {{ -if is_test_mode }} virtual void reset_flags() \{} {{ -endif }} }; Loading @@ -43,35 +41,35 @@ extern std::unique_ptr<flag_provider_interface> provider_; {{ for item in class_elements}} inline bool {item.flag_name}() \{ {{ if is_test_mode }} {{ -if is_test_mode }} return provider_->{item.flag_name}(); {{ -else- }} {{ if is_prod_mode- }} {{ if item.readwrite- }} {{ -else }} {{ -if is_prod_mode }} {{ -if item.readwrite }} return provider_->{item.flag_name}(); {{ -else- }} {{ if item.is_fixed_read_only- }} {{ -else }} {{ -if item.is_fixed_read_only }} return {package_macro}_{item.flag_macro}; {{ -else- }} {{ -else }} return {item.default_value}; {{ -endif }} {{ -endif }} {{ -else- }} {{ if is_exported_mode- }} {{ -else }} {{ -if is_exported_mode }} return provider_->{item.flag_name}(); {{ -endif }} {{ -endif }} {{ -endif }} } {{ if is_test_mode }} {{ -if is_test_mode }} inline void {item.flag_name}(bool val) \{ provider_->{item.flag_name}(val); } {{ -endif }} {{ -endfor }} {{ if is_test_mode }} {{ -if is_test_mode }} inline void reset_flags() \{ return provider_->reset_flags(); } Loading @@ -85,12 +83,12 @@ extern "C" \{ {{ for item in class_elements }} bool {header}_{item.flag_name}(); {{ if is_test_mode }} {{ -if is_test_mode }} void set_{header}_{item.flag_name}(bool val); {{ -endif }} {{ -endfor }} {{ if is_test_mode }} {{ -if is_test_mode }} void {header}_reset_flags(); {{ -endif }} Loading tools/aconfig/templates/cpp_source_file.template +24 −23 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ namespace {cpp_namespace} \{ "aconfig_flags.{item.device_config_namespace}", "{item.device_config_flag}", "{item.default_value}") == "true"; {{ -else- }} {{ -else }} return {item.default_value}; {{ -endif }} } Loading @@ -44,7 +44,7 @@ namespace {cpp_namespace} \{ virtual void {item.flag_name}(bool val) override \{ overrides_["{item.flag_name}"] = val; } {{ -endfor }} {{ endfor }} virtual void reset_flags() override \{ overrides_.clear(); Loading @@ -56,10 +56,11 @@ namespace {cpp_namespace} \{ class flag_provider : public flag_provider_interface \{ public: {{ for item in class_elements }} {{ -for item in class_elements }} virtual bool {item.flag_name}() override \{ {{ if is_prod_mode- }} {{ if item.readwrite- }} {{ -if is_prod_mode }} {{ -if item.readwrite }} if (cache_[{item.readwrite_idx}] == -1) \{ cache_[{item.readwrite_idx}] = server_configurable_flags::GetServerConfigurableFlag( "aconfig_flags.{item.device_config_namespace}", Loading @@ -67,15 +68,15 @@ namespace {cpp_namespace} \{ "{item.default_value}") == "true"; } return cache_[{item.readwrite_idx}]; {{ -else- }} {{ if item.is_fixed_read_only }} {{ -else }} {{ -if item.is_fixed_read_only }} return {package_macro}_{item.flag_macro}; {{ -else- }} {{ -else }} return {item.default_value}; {{ -endif }} {{ -endif }} {{ -else- }} {{ if is_exported_mode-}} {{ -if is_exported_mode }} if (cache_[{item.readwrite_idx}] == -1) \{ cache_[{item.readwrite_idx}] = server_configurable_flags::GetServerConfigurableFlag( "aconfig_flags.{item.device_config_namespace}", Loading @@ -86,7 +87,7 @@ namespace {cpp_namespace} \{ {{ -endif }} {{ -endif }} } {{ endfor }} {{ -endfor }} {{ if readwrite- }} private: std::vector<int8_t> cache_ = std::vector<int8_t>({readwrite_count}, -1); Loading @@ -102,35 +103,35 @@ std::unique_ptr<flag_provider_interface> provider_ = {{ for item in class_elements }} bool {header}_{item.flag_name}() \{ {{ if is_test_mode }} {{ -if is_test_mode }} return {cpp_namespace}::{item.flag_name}(); {{ -else- }} {{ if is_prod_mode- }} {{ if item.readwrite- }} {{ -else }} {{ -if is_prod_mode }} {{ -if item.readwrite }} return {cpp_namespace}::{item.flag_name}(); {{ -else- }} {{ if item.is_fixed_read_only }} {{ -else }} {{ -if item.is_fixed_read_only }} return {package_macro}_{item.flag_macro}; {{ -else- }} {{ -else }} return {item.default_value}; {{ -endif }} {{ -endif }} {{ -else- }} {{ if is_exported_mode- }} {{ -else }} {{ -if is_exported_mode }} return {cpp_namespace}::{item.flag_name}(); {{ -endif }} {{ -endif }} {{ -endif }} } {{ if is_test_mode }} {{ -if is_test_mode }} void set_{header}_{item.flag_name}(bool val) \{ {cpp_namespace}::{item.flag_name}(val); } {{ -endif }} {{ endfor-}} {{ endfor }} {{ if is_test_mode }} {{ -if is_test_mode }} void {header}_reset_flags() \{ {cpp_namespace}::reset_flags(); } Loading Loading
tools/aconfig/templates/FeatureFlags.java.template +3 −3 Original line number Diff line number Diff line Loading @@ -5,10 +5,10 @@ import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public interface FeatureFlags \{ {{ for item in flag_elements }} {{ if library_exported }} {{ -if library_exported }} @UnsupportedAppUsage boolean {item.method_name}(); {{ else }} {{ -else }} {{ -if not item.is_read_write }} {{ -if item.default_value }} @com.android.aconfig.annotations.AssumeTrueForR8 Loading @@ -19,5 +19,5 @@ public interface FeatureFlags \{ @UnsupportedAppUsage boolean {item.method_name}(); {{ endif }} {{ endfor }} {{ -endfor }} }
tools/aconfig/templates/FeatureFlagsImpl.java.template +24 −27 Original line number Diff line number Diff line package {package_name}; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; {{ if not is_test_mode }} {{ if runtime_lookup_required- }} {{ -if not is_test_mode }} {{ -if runtime_lookup_required }} import android.provider.DeviceConfig; import android.provider.DeviceConfig.Properties; {{ endif }} Loading @@ -14,31 +14,29 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ {{ -endfor- }} {{ for flag in flag_elements }} {{ if library_exported }} {{ -if library_exported }} private static boolean {flag.method_name} = false; {{ else }} {{ -else }} {{- if flag.is_read_write }} private static boolean {flag.method_name} = {flag.default_value}; {{- endif- }} {{ endif }} {{ endfor }} {{ -endif }} {{ -endfor }} {{ for namespace_with_flags in namespace_flags }} private void load_overrides_{namespace_with_flags.namespace}() \{ try \{ Properties properties = DeviceConfig.getProperties("{namespace_with_flags.namespace}"); {{ -for flag in namespace_with_flags.flags }} {{ if library_exported }} {{ -if library_exported }} {flag.method_name} = properties.getBoolean("{flag.device_config_flag}", false); {{ else }} {{ if flag.is_read_write }} {{ -else }} {{ -if flag.is_read_write }} {flag.method_name} = properties.getBoolean("{flag.device_config_flag}", {flag.default_value}); {{ endif }} {{ endif }} {{ endfor }} {{ -endif }} {{ -endif }} {{ -endfor }} } catch (NullPointerException e) \{ throw new RuntimeException( "Cannot read value from namespace {namespace_with_flags.namespace} " Loading @@ -52,9 +50,8 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ {namespace_with_flags.namespace}_is_cached = true; } {{ endfor- }} {{ endif- }} {{ for flag in flag_elements }} {{ -endif }}{#- end of runtime_lookup_required #} {{ -for flag in flag_elements }} @Override @UnsupportedAppUsage public boolean {flag.method_name}() \{ Loading @@ -63,13 +60,13 @@ public final class FeatureFlagsImpl implements FeatureFlags \{ load_overrides_{flag.device_config_namespace}(); } return {flag.method_name}; {{ else }} {{ -else }} {{ -if flag.is_read_write }} if (!{flag.device_config_namespace}_is_cached) \{ load_overrides_{flag.device_config_namespace}(); } return {flag.method_name}; {{ else }} {{ -else }} return {flag.default_value}; {{ -endif- }} {{ -endif }} Loading
tools/aconfig/templates/Flags.java.template +9 −8 Original line number Diff line number Diff line Loading @@ -9,8 +9,8 @@ public final class Flags \{ /** @hide */ public static final String FLAG_{item.flag_name_constant_suffix} = "{item.device_config_flag}"; {{- endfor }} {{ for item in flag_elements}} {{ -if library_exported }} {{ -for item in flag_elements}} {{ if library_exported }} @UnsupportedAppUsage public static boolean {item.method_name}() \{ return FEATURE_FLAGS.{item.method_name}(); Loading @@ -21,14 +21,14 @@ public final class Flags \{ @com.android.aconfig.annotations.AssumeTrueForR8 {{ -else }} @com.android.aconfig.annotations.AssumeFalseForR8 {{ -endif- }} {{ endif }} {{ -endif }} {{ -endif }} @UnsupportedAppUsage public static boolean {item.method_name}() \{ return FEATURE_FLAGS.{item.method_name}(); } {{ endif }} {{ endfor }} {{ -endif }} {{ -endfor }} {{ -if is_test_mode }} public static void setFeatureFlags(FeatureFlags featureFlags) \{ Flags.FEATURE_FLAGS = featureFlags; Loading @@ -37,7 +37,8 @@ public final class Flags \{ public static void unsetFeatureFlags() \{ Flags.FEATURE_FLAGS = null; } {{ endif }} {{ -endif }} private static FeatureFlags FEATURE_FLAGS{{ -if not is_test_mode }} = new FeatureFlagsImpl(){{ -endif- }}; }
tools/aconfig/templates/cpp_exported_header.template +17 −19 Original line number Diff line number Diff line Loading @@ -6,13 +6,11 @@ #define {package_macro}(FLAG) {package_macro}_##FLAG #endif {{ for item in class_elements }} {{ if item.is_fixed_read_only- }} {{ -if item.is_fixed_read_only }} #ifndef {package_macro}_{item.flag_macro} #define {package_macro}_{item.flag_macro} {item.default_value} #endif {{ -endif }} {{ -endfor }} {{ -endif }} {{ -endif }} Loading @@ -26,15 +24,15 @@ namespace {cpp_namespace} \{ class flag_provider_interface \{ public: virtual ~flag_provider_interface() = default; {{ for item in class_elements}} {{ -for item in class_elements}} virtual bool {item.flag_name}() = 0; {{ if is_test_mode }} {{ -if is_test_mode }} virtual void {item.flag_name}(bool val) = 0; {{ -endif }} {{ -endfor }} {{ if is_test_mode }} {{ -if is_test_mode }} virtual void reset_flags() \{} {{ -endif }} }; Loading @@ -43,35 +41,35 @@ extern std::unique_ptr<flag_provider_interface> provider_; {{ for item in class_elements}} inline bool {item.flag_name}() \{ {{ if is_test_mode }} {{ -if is_test_mode }} return provider_->{item.flag_name}(); {{ -else- }} {{ if is_prod_mode- }} {{ if item.readwrite- }} {{ -else }} {{ -if is_prod_mode }} {{ -if item.readwrite }} return provider_->{item.flag_name}(); {{ -else- }} {{ if item.is_fixed_read_only- }} {{ -else }} {{ -if item.is_fixed_read_only }} return {package_macro}_{item.flag_macro}; {{ -else- }} {{ -else }} return {item.default_value}; {{ -endif }} {{ -endif }} {{ -else- }} {{ if is_exported_mode- }} {{ -else }} {{ -if is_exported_mode }} return provider_->{item.flag_name}(); {{ -endif }} {{ -endif }} {{ -endif }} } {{ if is_test_mode }} {{ -if is_test_mode }} inline void {item.flag_name}(bool val) \{ provider_->{item.flag_name}(val); } {{ -endif }} {{ -endfor }} {{ if is_test_mode }} {{ -if is_test_mode }} inline void reset_flags() \{ return provider_->reset_flags(); } Loading @@ -85,12 +83,12 @@ extern "C" \{ {{ for item in class_elements }} bool {header}_{item.flag_name}(); {{ if is_test_mode }} {{ -if is_test_mode }} void set_{header}_{item.flag_name}(bool val); {{ -endif }} {{ -endfor }} {{ if is_test_mode }} {{ -if is_test_mode }} void {header}_reset_flags(); {{ -endif }} Loading
tools/aconfig/templates/cpp_source_file.template +24 −23 Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ namespace {cpp_namespace} \{ "aconfig_flags.{item.device_config_namespace}", "{item.device_config_flag}", "{item.default_value}") == "true"; {{ -else- }} {{ -else }} return {item.default_value}; {{ -endif }} } Loading @@ -44,7 +44,7 @@ namespace {cpp_namespace} \{ virtual void {item.flag_name}(bool val) override \{ overrides_["{item.flag_name}"] = val; } {{ -endfor }} {{ endfor }} virtual void reset_flags() override \{ overrides_.clear(); Loading @@ -56,10 +56,11 @@ namespace {cpp_namespace} \{ class flag_provider : public flag_provider_interface \{ public: {{ for item in class_elements }} {{ -for item in class_elements }} virtual bool {item.flag_name}() override \{ {{ if is_prod_mode- }} {{ if item.readwrite- }} {{ -if is_prod_mode }} {{ -if item.readwrite }} if (cache_[{item.readwrite_idx}] == -1) \{ cache_[{item.readwrite_idx}] = server_configurable_flags::GetServerConfigurableFlag( "aconfig_flags.{item.device_config_namespace}", Loading @@ -67,15 +68,15 @@ namespace {cpp_namespace} \{ "{item.default_value}") == "true"; } return cache_[{item.readwrite_idx}]; {{ -else- }} {{ if item.is_fixed_read_only }} {{ -else }} {{ -if item.is_fixed_read_only }} return {package_macro}_{item.flag_macro}; {{ -else- }} {{ -else }} return {item.default_value}; {{ -endif }} {{ -endif }} {{ -else- }} {{ if is_exported_mode-}} {{ -if is_exported_mode }} if (cache_[{item.readwrite_idx}] == -1) \{ cache_[{item.readwrite_idx}] = server_configurable_flags::GetServerConfigurableFlag( "aconfig_flags.{item.device_config_namespace}", Loading @@ -86,7 +87,7 @@ namespace {cpp_namespace} \{ {{ -endif }} {{ -endif }} } {{ endfor }} {{ -endfor }} {{ if readwrite- }} private: std::vector<int8_t> cache_ = std::vector<int8_t>({readwrite_count}, -1); Loading @@ -102,35 +103,35 @@ std::unique_ptr<flag_provider_interface> provider_ = {{ for item in class_elements }} bool {header}_{item.flag_name}() \{ {{ if is_test_mode }} {{ -if is_test_mode }} return {cpp_namespace}::{item.flag_name}(); {{ -else- }} {{ if is_prod_mode- }} {{ if item.readwrite- }} {{ -else }} {{ -if is_prod_mode }} {{ -if item.readwrite }} return {cpp_namespace}::{item.flag_name}(); {{ -else- }} {{ if item.is_fixed_read_only }} {{ -else }} {{ -if item.is_fixed_read_only }} return {package_macro}_{item.flag_macro}; {{ -else- }} {{ -else }} return {item.default_value}; {{ -endif }} {{ -endif }} {{ -else- }} {{ if is_exported_mode- }} {{ -else }} {{ -if is_exported_mode }} return {cpp_namespace}::{item.flag_name}(); {{ -endif }} {{ -endif }} {{ -endif }} } {{ if is_test_mode }} {{ -if is_test_mode }} void set_{header}_{item.flag_name}(bool val) \{ {cpp_namespace}::{item.flag_name}(val); } {{ -endif }} {{ endfor-}} {{ endfor }} {{ if is_test_mode }} {{ -if is_test_mode }} void {header}_reset_flags() \{ {cpp_namespace}::reset_flags(); } Loading