Files
build/tools/aconfig/templates/Flags.java.template
Mårten Kongstad fb10840da5 aconfig: explicitly @hide FLAG_ constants
Because of a bug in metalava [1], the flag constants are incorrectly
considered not-hidden when metalava generates the API signature files.
This means the FLAG_ constant name will be used, instead of the FLAG_
constant value, which is what we want.

While waiting for b/300211291 to be fixed, explicitly mark the FLAG_
constants as hidden (and keep marking the classes as such).

This CL can be reverted when b/300211291 is fixed.

1. Item.isHiddenOrRemoved does not check if its parent item is hidden,
   tracked in b/300211291

Bug: 297881670
Test: atest aconfig.test aconfig.test.java
Change-Id: I05de8344ccb424bee51c39f9609489ad312397ce
2023-09-13 10:15:01 +02:00

33 lines
946 B
Plaintext

package {package_name};
/** @hide */
public final class Flags \{
{{- for item in class_elements}}
/** @hide */
public static final String FLAG_{item.flag_name_constant_suffix} = "{item.device_config_flag}";
{{- endfor }}
{{ for item in class_elements}}
{{ -if not item.is_read_write }}
{{ -if item.default_value }}
@com.android.aconfig.annotations.AssumeTrueForR8
{{ -else }}
@com.android.aconfig.annotations.AssumeFalseForR8
{{ -endif- }}
{{ endif }}
public static boolean {item.method_name}() \{
return FEATURE_FLAGS.{item.method_name}();
}
{{ 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- }};
}