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

Commit 13f58443 authored by Zhi Dou's avatar Zhi Dou Committed by Automerger Merge Worker
Browse files

Merge "aconfig: update codegen templates" into main am: e381a17c am: f0b2dfed am: bf18e8f4

parents beae2790 bf18e8f4
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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
@@ -19,5 +19,5 @@ public interface FeatureFlags \{
    @UnsupportedAppUsage
    boolean {item.method_name}();
{{ endif }}
{{ endfor }}
{{ -endfor }}
}
+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 }}
@@ -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} "
@@ -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}() \{
@@ -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 }}
+9 −8
Original line number Diff line number Diff line
@@ -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}();
@@ -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;
@@ -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- }};

}
+17 −19
Original line number Diff line number Diff line
@@ -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 }}
@@ -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 }}
};
@@ -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();
}
@@ -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 }}

+24 −23
Original line number Diff line number Diff line
@@ -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 }}
            }
@@ -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();
@@ -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}",
@@ -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}",
@@ -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);
@@ -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