This commit adds a third codegen mode, _exported_, in addition to the existing modes, production and test. When codegen mode is _exported_, getters are generated _only_ for flags marked as exported as well. Also the getters always look up DeviceConfig values at runtime, and have a default value of false. This only implements exported mode for Java codegen, follow-up CLs will support Rust and C++. Test: atest aconfig.test Bug: 311152507 Change-Id: Ie39379b40de072180e05d84c76361b24cc0e0d83
56 lines
1.5 KiB
Plaintext
56 lines
1.5 KiB
Plaintext
package {package_name};
|
|
|
|
// TODO(b/303773055): Remove the annotation after access issue is resolved.
|
|
import android.compat.annotation.UnsupportedAppUsage;
|
|
|
|
/** @hide */
|
|
public final class Flags \{
|
|
{{- for item in flag_elements}}
|
|
{{ if library_exported }}
|
|
{{ if item.exported }}
|
|
/** @hide */
|
|
public static final String FLAG_{item.flag_name_constant_suffix} = "{item.device_config_flag}";
|
|
{{ endif }}
|
|
{{ else }}
|
|
/** @hide */
|
|
public static final String FLAG_{item.flag_name_constant_suffix} = "{item.device_config_flag}";
|
|
{{ endif }}
|
|
{{- endfor }}
|
|
{{ for item in flag_elements}}
|
|
{{ if library_exported }}
|
|
|
|
{{ if item.exported }}
|
|
@UnsupportedAppUsage
|
|
public static boolean {item.method_name}() \{
|
|
return FEATURE_FLAGS.{item.method_name}();
|
|
}
|
|
{{ endif }}
|
|
|
|
{{ else }}
|
|
|
|
{{ -if not item.is_read_write }}
|
|
{{ -if item.default_value }}
|
|
@com.android.aconfig.annotations.AssumeTrueForR8
|
|
{{ -else }}
|
|
@com.android.aconfig.annotations.AssumeFalseForR8
|
|
{{ -endif- }}
|
|
{{ endif }}
|
|
@UnsupportedAppUsage
|
|
public static boolean {item.method_name}() \{
|
|
return FEATURE_FLAGS.{item.method_name}();
|
|
}
|
|
{{ endif }}
|
|
{{ endfor }}
|
|
{{ -if is_test_mode }}
|
|
public static void setFeatureFlags(FeatureFlags featureFlags) \{
|
|
Flags.FEATURE_FLAGS = featureFlags;
|
|
}
|
|
|
|
public static void unsetFeatureFlags() \{
|
|
Flags.FEATURE_FLAGS = null;
|
|
}
|
|
{{ endif }}
|
|
private static FeatureFlags FEATURE_FLAGS{{ -if not is_test_mode }} = new FeatureFlagsImpl(){{ -endif- }};
|
|
|
|
}
|