aconfig: Add exported mode to aconfig Java library generation.
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
This commit is contained in:
@@ -6,10 +6,28 @@ 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
|
||||
@@ -21,6 +39,7 @@ public final class Flags \{
|
||||
public static boolean {item.method_name}() \{
|
||||
return FEATURE_FLAGS.{item.method_name}();
|
||||
}
|
||||
{{ endif }}
|
||||
{{ endfor }}
|
||||
{{ -if is_test_mode }}
|
||||
public static void setFeatureFlags(FeatureFlags featureFlags) \{
|
||||
|
Reference in New Issue
Block a user