blob: 9f4c52f9789f22d040d4a18833ea0a775f215291 [file] [log] [blame]
Zhi Dou4655c962023-06-12 15:56:03 +00001package {package_name};
2
Zhi Dou22a90f42023-10-06 07:28:44 +00003// TODO(b/303773055): Remove the annotation after access issue is resolved.
4import android.compat.annotation.UnsupportedAppUsage;
5
Mårten Kongstad65efa272023-09-11 12:17:25 +00006/** @hide */
Zhi Dou4655c962023-06-12 15:56:03 +00007public final class Flags \{
Zhi Dou72c2a932023-10-31 22:57:30 +00008{{- for item in flag_elements}}
Ted Bauer4a6af782023-11-29 15:44:24 +00009 {{ if library_exported }}
10 {{ if item.exported }}
Mårten Kongstadfb108402023-09-13 10:15:01 +020011 /** @hide */
Mårten Kongstada2e152a2023-06-19 16:11:33 +020012 public static final String FLAG_{item.flag_name_constant_suffix} = "{item.device_config_flag}";
Ted Bauer4a6af782023-11-29 15:44:24 +000013 {{ endif }}
14 {{ else }}
15 /** @hide */
16 public static final String FLAG_{item.flag_name_constant_suffix} = "{item.device_config_flag}";
17 {{ endif }}
Zhi Doua41cc5e2023-06-29 15:01:56 +000018{{- endfor }}
Zhi Dou72c2a932023-10-31 22:57:30 +000019{{ for item in flag_elements}}
Ted Bauer4a6af782023-11-29 15:44:24 +000020{{ if library_exported }}
21
22{{ if item.exported }}
23 @UnsupportedAppUsage
24 public static boolean {item.method_name}() \{
25 return FEATURE_FLAGS.{item.method_name}();
26 }
27{{ endif }}
28
29{{ else }}
30
Zhi Doudeafa792023-09-05 18:22:46 +000031{{ -if not item.is_read_write }}
32{{ -if item.default_value }}
33 @com.android.aconfig.annotations.AssumeTrueForR8
34{{ -else }}
35 @com.android.aconfig.annotations.AssumeFalseForR8
36{{ -endif- }}
37{{ endif }}
Zhi Dou22a90f42023-10-06 07:28:44 +000038 @UnsupportedAppUsage
Zhi Dou4655c962023-06-12 15:56:03 +000039 public static boolean {item.method_name}() \{
40 return FEATURE_FLAGS.{item.method_name}();
41 }
Ted Bauer4a6af782023-11-29 15:44:24 +000042{{ endif }}
Zhi Doua41cc5e2023-06-29 15:01:56 +000043{{ endfor }}
44{{ -if is_test_mode }}
Zhi Dou5aaeee32023-08-07 22:54:13 +000045 public static void setFeatureFlags(FeatureFlags featureFlags) \{
Zhi Dou8ba6aa72023-06-26 21:03:40 +000046 Flags.FEATURE_FLAGS = featureFlags;
47 }
48
Zhi Dou5aaeee32023-08-07 22:54:13 +000049 public static void unsetFeatureFlags() \{
Zhi Dou8ba6aa72023-06-26 21:03:40 +000050 Flags.FEATURE_FLAGS = null;
51 }
Zhi Doudeafa792023-09-05 18:22:46 +000052{{ endif }}
Zhi Dou8ba6aa72023-06-26 21:03:40 +000053 private static FeatureFlags FEATURE_FLAGS{{ -if not is_test_mode }} = new FeatureFlagsImpl(){{ -endif- }};
Zhi Dou4655c962023-06-12 15:56:03 +000054
55}