Loading tools/aconfig/aconfig/Android.bp +1 −5 Original line number Diff line number Diff line Loading @@ -26,10 +26,6 @@ rust_defaults { cfgs: select(release_flag("RELEASE_ACONFIG_FINGERPRINT_RUST"), { true: ["enable_fingerprint_rust"], default: [], }) + select(release_flag("RELEASE_JARJAR_FLAGS_IN_FRAMEWORK"), { true: ["enable_jarjar_flags_in_framwork"], default: [], }), } Loading tools/aconfig/aconfig/Cargo.toml +2 −6 Original line number Diff line number Diff line Loading @@ -27,9 +27,5 @@ serde = { version = "1.0.152", features = ["derive"] } serde_json = "1.0.93" convert_finalized_flags = { path = "../convert_finalized_flags" } [lints.rust.unexpected_cfgs] level = "warn" check-cfg = [ "cfg(enable_fingerprint_rust)", "cfg(enable_jarjar_flags_in_framwork)", ] [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(enable_fingerprint_rust)'] } tools/aconfig/aconfig/src/codegen/java.rs +110 −45 Original line number Diff line number Diff line Loading @@ -35,8 +35,6 @@ pub struct JavaCodegenConfig { pub package_fingerprint: u64, pub single_exported_file: bool, pub finalized_flags: FinalizedFlagMap, // whether add UnsupportedAppUsage(uau) anotation in the generated code pub support_uau_annotation: bool, } pub fn generate_java_code<I>( Loading Loading @@ -85,7 +83,6 @@ where package_fingerprint: format!("0x{:X}L", config.package_fingerprint), single_exported_file: config.single_exported_file, use_device_config, support_uau_annotation: config.support_uau_annotation, }; let mut template = TinyTemplate::new(); if library_exported && config.single_exported_file { Loading Loading @@ -164,7 +161,6 @@ struct Context { pub package_fingerprint: String, pub single_exported_file: bool, pub use_device_config: bool, pub support_uau_annotation: bool, } #[derive(Serialize, Debug)] Loading Loading @@ -294,36 +290,49 @@ mod tests { const EXPECTED_FEATUREFLAGS_COMMON_CONTENT: &str = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public interface FeatureFlags { @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRo(); @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRw(); @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRwExported(); @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRwInOtherNamespace(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledFixedRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledFixedRoExported(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRoExported(); @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRw(); } "#; const EXPECTED_FLAG_COMMON_CONTENT: &str = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public final class Flags { /** @hide */ Loading @@ -347,42 +356,51 @@ mod tests { @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRo() { return FEATURE_FLAGS.disabledRo(); } @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRw() { return FEATURE_FLAGS.disabledRw(); } @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRwExported() { return FEATURE_FLAGS.disabledRwExported(); } @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRwInOtherNamespace() { return FEATURE_FLAGS.disabledRwInOtherNamespace(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledFixedRo() { return FEATURE_FLAGS.enabledFixedRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledFixedRoExported() { return FEATURE_FLAGS.enabledFixedRoExported(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRo() { return FEATURE_FLAGS.enabledRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRoExported() { return FEATURE_FLAGS.enabledRoExported(); } @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRw() { return FEATURE_FLAGS.enabledRw(); } Loading @@ -390,6 +408,9 @@ mod tests { const EXPECTED_CUSTOMFEATUREFLAGS_CONTENT: &str = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; import java.util.Arrays; import java.util.HashSet; import java.util.List; Loading @@ -407,46 +428,55 @@ mod tests { } @Override @UnsupportedAppUsage public boolean disabledRo() { return getValue(Flags.FLAG_DISABLED_RO, FeatureFlags::disabledRo); } @Override @UnsupportedAppUsage public boolean disabledRw() { return getValue(Flags.FLAG_DISABLED_RW, FeatureFlags::disabledRw); } @Override @UnsupportedAppUsage public boolean disabledRwExported() { return getValue(Flags.FLAG_DISABLED_RW_EXPORTED, FeatureFlags::disabledRwExported); } @Override @UnsupportedAppUsage public boolean disabledRwInOtherNamespace() { return getValue(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, FeatureFlags::disabledRwInOtherNamespace); } @Override @UnsupportedAppUsage public boolean enabledFixedRo() { return getValue(Flags.FLAG_ENABLED_FIXED_RO, FeatureFlags::enabledFixedRo); } @Override @UnsupportedAppUsage public boolean enabledFixedRoExported() { return getValue(Flags.FLAG_ENABLED_FIXED_RO_EXPORTED, FeatureFlags::enabledFixedRoExported); } @Override @UnsupportedAppUsage public boolean enabledRo() { return getValue(Flags.FLAG_ENABLED_RO, FeatureFlags::enabledRo); } @Override @UnsupportedAppUsage public boolean enabledRoExported() { return getValue(Flags.FLAG_ENABLED_RO_EXPORTED, FeatureFlags::enabledRoExported); } @Override @UnsupportedAppUsage public boolean enabledRw() { return getValue(Flags.FLAG_ENABLED_RW, FeatureFlags::enabledRw); Loading Loading @@ -562,7 +592,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading @@ -577,6 +606,8 @@ mod tests { let expected_featureflagsmpl_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; import android.os.flagging.PlatformAconfigPackageInternal; import android.util.Log; /** @hide */ Loading Loading @@ -606,11 +637,13 @@ mod tests { @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRo() { return false; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRw() { if (!isCached) { init(); Loading @@ -619,6 +652,7 @@ mod tests { } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRwExported() { if (!isCached) { init(); Loading @@ -627,6 +661,7 @@ mod tests { } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRwInOtherNamespace() { if (!isCached) { init(); Loading @@ -635,26 +670,31 @@ mod tests { } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledFixedRo() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledFixedRoExported() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRo() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRoExported() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRw() { if (!isCached) { init(); Loading Loading @@ -710,7 +750,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -929,7 +968,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags, support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -1154,7 +1192,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags, support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -1193,7 +1230,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -1320,7 +1356,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading @@ -1330,59 +1365,75 @@ mod tests { .unwrap(); let expect_featureflags_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public interface FeatureFlags { @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRo(); @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRw(); @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRwInOtherNamespace(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledFixedRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRw(); }"#; let expect_featureflagsimpl_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public final class FeatureFlagsImpl implements FeatureFlags { @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRo() { return false; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRw() { return false; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRwInOtherNamespace() { return false; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledFixedRo() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRo() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRw() { return true; } Loading @@ -1391,6 +1442,8 @@ mod tests { let expect_flags_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public final class Flags { /** @hide */ Loading @@ -1407,31 +1460,37 @@ mod tests { public static final String FLAG_ENABLED_RW = "com.android.aconfig.test.enabled_rw"; @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRo() { return FEATURE_FLAGS.disabledRo(); } @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRw() { return FEATURE_FLAGS.disabledRw(); } @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRwInOtherNamespace() { return FEATURE_FLAGS.disabledRwInOtherNamespace(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledFixedRo() { return FEATURE_FLAGS.enabledFixedRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRo() { return FEATURE_FLAGS.enabledRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRw() { return FEATURE_FLAGS.enabledRw(); } Loading @@ -1441,6 +1500,8 @@ mod tests { let expect_customfeatureflags_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; import java.util.Arrays; import java.util.HashSet; import java.util.List; Loading @@ -1458,31 +1519,37 @@ mod tests { } @Override @UnsupportedAppUsage public boolean disabledRo() { return getValue(Flags.FLAG_DISABLED_RO, FeatureFlags::disabledRo); } @Override @UnsupportedAppUsage public boolean disabledRw() { return getValue(Flags.FLAG_DISABLED_RW, FeatureFlags::disabledRw); } @Override @UnsupportedAppUsage public boolean disabledRwInOtherNamespace() { return getValue(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, FeatureFlags::disabledRwInOtherNamespace); } @Override @UnsupportedAppUsage public boolean enabledFixedRo() { return getValue(Flags.FLAG_ENABLED_FIXED_RO, FeatureFlags::enabledFixedRo); } @Override @UnsupportedAppUsage public boolean enabledRo() { return getValue(Flags.FLAG_ENABLED_RO, FeatureFlags::enabledRo); } @Override @UnsupportedAppUsage public boolean enabledRw() { return getValue(Flags.FLAG_ENABLED_RW, FeatureFlags::enabledRw); Loading Loading @@ -1581,7 +1648,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: true, finalized_flags, support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -1681,7 +1747,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let error = generate_java_code( crate::test::TEST_PACKAGE, Loading tools/aconfig/aconfig/src/commands.rs +0 −1 Original line number Diff line number Diff line Loading @@ -261,7 +261,6 @@ pub fn create_java_lib( package_fingerprint, single_exported_file, finalized_flags, support_uau_annotation: !cfg!(enable_jarjar_flags_in_framwork), }; generate_java_code(&package, modified_parsed_flags.into_iter(), config) } Loading tools/aconfig/aconfig/templates/CustomFeatureFlags.java.template +1 −3 Original line number Diff line number Diff line package {package_name}; {{ if not library_exported- }} {{ if support_uau_annotation- }} // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; {{ -endif }} {{ -endif }} import java.util.Arrays; {{ -if library_exported }} import java.util.HashMap; Loading Loading @@ -37,7 +35,7 @@ public class CustomFeatureFlags implements FeatureFlags \{ {{ -for item in flag_elements}} @Override {{ if not library_exported }}{{ if support_uau_annotation- }} @UnsupportedAppUsage{{ -endif }}{{ -endif }} {{ if not library_exported }} @UnsupportedAppUsage{{ -endif }} public boolean {item.method_name}() \{ return getValue(Flags.FLAG_{item.flag_name_constant_suffix}, FeatureFlags::{item.method_name}); Loading Loading
tools/aconfig/aconfig/Android.bp +1 −5 Original line number Diff line number Diff line Loading @@ -26,10 +26,6 @@ rust_defaults { cfgs: select(release_flag("RELEASE_ACONFIG_FINGERPRINT_RUST"), { true: ["enable_fingerprint_rust"], default: [], }) + select(release_flag("RELEASE_JARJAR_FLAGS_IN_FRAMEWORK"), { true: ["enable_jarjar_flags_in_framwork"], default: [], }), } Loading
tools/aconfig/aconfig/Cargo.toml +2 −6 Original line number Diff line number Diff line Loading @@ -27,9 +27,5 @@ serde = { version = "1.0.152", features = ["derive"] } serde_json = "1.0.93" convert_finalized_flags = { path = "../convert_finalized_flags" } [lints.rust.unexpected_cfgs] level = "warn" check-cfg = [ "cfg(enable_fingerprint_rust)", "cfg(enable_jarjar_flags_in_framwork)", ] [lints.rust] unexpected_cfgs = { level = "warn", check-cfg = ['cfg(enable_fingerprint_rust)'] }
tools/aconfig/aconfig/src/codegen/java.rs +110 −45 Original line number Diff line number Diff line Loading @@ -35,8 +35,6 @@ pub struct JavaCodegenConfig { pub package_fingerprint: u64, pub single_exported_file: bool, pub finalized_flags: FinalizedFlagMap, // whether add UnsupportedAppUsage(uau) anotation in the generated code pub support_uau_annotation: bool, } pub fn generate_java_code<I>( Loading Loading @@ -85,7 +83,6 @@ where package_fingerprint: format!("0x{:X}L", config.package_fingerprint), single_exported_file: config.single_exported_file, use_device_config, support_uau_annotation: config.support_uau_annotation, }; let mut template = TinyTemplate::new(); if library_exported && config.single_exported_file { Loading Loading @@ -164,7 +161,6 @@ struct Context { pub package_fingerprint: String, pub single_exported_file: bool, pub use_device_config: bool, pub support_uau_annotation: bool, } #[derive(Serialize, Debug)] Loading Loading @@ -294,36 +290,49 @@ mod tests { const EXPECTED_FEATUREFLAGS_COMMON_CONTENT: &str = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public interface FeatureFlags { @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRo(); @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRw(); @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRwExported(); @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRwInOtherNamespace(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledFixedRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledFixedRoExported(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRoExported(); @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRw(); } "#; const EXPECTED_FLAG_COMMON_CONTENT: &str = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public final class Flags { /** @hide */ Loading @@ -347,42 +356,51 @@ mod tests { @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRo() { return FEATURE_FLAGS.disabledRo(); } @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRw() { return FEATURE_FLAGS.disabledRw(); } @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRwExported() { return FEATURE_FLAGS.disabledRwExported(); } @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRwInOtherNamespace() { return FEATURE_FLAGS.disabledRwInOtherNamespace(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledFixedRo() { return FEATURE_FLAGS.enabledFixedRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledFixedRoExported() { return FEATURE_FLAGS.enabledFixedRoExported(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRo() { return FEATURE_FLAGS.enabledRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRoExported() { return FEATURE_FLAGS.enabledRoExported(); } @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRw() { return FEATURE_FLAGS.enabledRw(); } Loading @@ -390,6 +408,9 @@ mod tests { const EXPECTED_CUSTOMFEATUREFLAGS_CONTENT: &str = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; import java.util.Arrays; import java.util.HashSet; import java.util.List; Loading @@ -407,46 +428,55 @@ mod tests { } @Override @UnsupportedAppUsage public boolean disabledRo() { return getValue(Flags.FLAG_DISABLED_RO, FeatureFlags::disabledRo); } @Override @UnsupportedAppUsage public boolean disabledRw() { return getValue(Flags.FLAG_DISABLED_RW, FeatureFlags::disabledRw); } @Override @UnsupportedAppUsage public boolean disabledRwExported() { return getValue(Flags.FLAG_DISABLED_RW_EXPORTED, FeatureFlags::disabledRwExported); } @Override @UnsupportedAppUsage public boolean disabledRwInOtherNamespace() { return getValue(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, FeatureFlags::disabledRwInOtherNamespace); } @Override @UnsupportedAppUsage public boolean enabledFixedRo() { return getValue(Flags.FLAG_ENABLED_FIXED_RO, FeatureFlags::enabledFixedRo); } @Override @UnsupportedAppUsage public boolean enabledFixedRoExported() { return getValue(Flags.FLAG_ENABLED_FIXED_RO_EXPORTED, FeatureFlags::enabledFixedRoExported); } @Override @UnsupportedAppUsage public boolean enabledRo() { return getValue(Flags.FLAG_ENABLED_RO, FeatureFlags::enabledRo); } @Override @UnsupportedAppUsage public boolean enabledRoExported() { return getValue(Flags.FLAG_ENABLED_RO_EXPORTED, FeatureFlags::enabledRoExported); } @Override @UnsupportedAppUsage public boolean enabledRw() { return getValue(Flags.FLAG_ENABLED_RW, FeatureFlags::enabledRw); Loading Loading @@ -562,7 +592,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading @@ -577,6 +606,8 @@ mod tests { let expected_featureflagsmpl_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; import android.os.flagging.PlatformAconfigPackageInternal; import android.util.Log; /** @hide */ Loading Loading @@ -606,11 +637,13 @@ mod tests { @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRo() { return false; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRw() { if (!isCached) { init(); Loading @@ -619,6 +652,7 @@ mod tests { } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRwExported() { if (!isCached) { init(); Loading @@ -627,6 +661,7 @@ mod tests { } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRwInOtherNamespace() { if (!isCached) { init(); Loading @@ -635,26 +670,31 @@ mod tests { } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledFixedRo() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledFixedRoExported() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRo() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRoExported() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRw() { if (!isCached) { init(); Loading Loading @@ -710,7 +750,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -929,7 +968,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags, support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -1154,7 +1192,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags, support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -1193,7 +1230,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -1320,7 +1356,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading @@ -1330,59 +1365,75 @@ mod tests { .unwrap(); let expect_featureflags_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public interface FeatureFlags { @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRo(); @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRw(); @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean disabledRwInOtherNamespace(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledFixedRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage boolean enabledRw(); }"#; let expect_featureflagsimpl_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public final class FeatureFlagsImpl implements FeatureFlags { @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRo() { return false; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRw() { return false; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean disabledRwInOtherNamespace() { return false; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledFixedRo() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRo() { return true; } @Override @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public boolean enabledRw() { return true; } Loading @@ -1391,6 +1442,8 @@ mod tests { let expect_flags_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public final class Flags { /** @hide */ Loading @@ -1407,31 +1460,37 @@ mod tests { public static final String FLAG_ENABLED_RW = "com.android.aconfig.test.enabled_rw"; @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRo() { return FEATURE_FLAGS.disabledRo(); } @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRw() { return FEATURE_FLAGS.disabledRw(); } @com.android.aconfig.annotations.AssumeFalseForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean disabledRwInOtherNamespace() { return FEATURE_FLAGS.disabledRwInOtherNamespace(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledFixedRo() { return FEATURE_FLAGS.enabledFixedRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRo() { return FEATURE_FLAGS.enabledRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @com.android.aconfig.annotations.AconfigFlagAccessor @UnsupportedAppUsage public static boolean enabledRw() { return FEATURE_FLAGS.enabledRw(); } Loading @@ -1441,6 +1500,8 @@ mod tests { let expect_customfeatureflags_content = r#" package com.android.aconfig.test; // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; import java.util.Arrays; import java.util.HashSet; import java.util.List; Loading @@ -1458,31 +1519,37 @@ mod tests { } @Override @UnsupportedAppUsage public boolean disabledRo() { return getValue(Flags.FLAG_DISABLED_RO, FeatureFlags::disabledRo); } @Override @UnsupportedAppUsage public boolean disabledRw() { return getValue(Flags.FLAG_DISABLED_RW, FeatureFlags::disabledRw); } @Override @UnsupportedAppUsage public boolean disabledRwInOtherNamespace() { return getValue(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, FeatureFlags::disabledRwInOtherNamespace); } @Override @UnsupportedAppUsage public boolean enabledFixedRo() { return getValue(Flags.FLAG_ENABLED_FIXED_RO, FeatureFlags::enabledFixedRo); } @Override @UnsupportedAppUsage public boolean enabledRo() { return getValue(Flags.FLAG_ENABLED_RO, FeatureFlags::enabledRo); } @Override @UnsupportedAppUsage public boolean enabledRw() { return getValue(Flags.FLAG_ENABLED_RW, FeatureFlags::enabledRw); Loading Loading @@ -1581,7 +1648,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: true, finalized_flags, support_uau_annotation: false, }; let generated_files = generate_java_code( crate::test::TEST_PACKAGE, Loading Loading @@ -1681,7 +1747,6 @@ mod tests { package_fingerprint: 5801144784618221668, single_exported_file: false, finalized_flags: FinalizedFlagMap::new(), support_uau_annotation: false, }; let error = generate_java_code( crate::test::TEST_PACKAGE, Loading
tools/aconfig/aconfig/src/commands.rs +0 −1 Original line number Diff line number Diff line Loading @@ -261,7 +261,6 @@ pub fn create_java_lib( package_fingerprint, single_exported_file, finalized_flags, support_uau_annotation: !cfg!(enable_jarjar_flags_in_framwork), }; generate_java_code(&package, modified_parsed_flags.into_iter(), config) } Loading
tools/aconfig/aconfig/templates/CustomFeatureFlags.java.template +1 −3 Original line number Diff line number Diff line package {package_name}; {{ if not library_exported- }} {{ if support_uau_annotation- }} // TODO(b/303773055): Remove the annotation after access issue is resolved. import android.compat.annotation.UnsupportedAppUsage; {{ -endif }} {{ -endif }} import java.util.Arrays; {{ -if library_exported }} import java.util.HashMap; Loading Loading @@ -37,7 +35,7 @@ public class CustomFeatureFlags implements FeatureFlags \{ {{ -for item in flag_elements}} @Override {{ if not library_exported }}{{ if support_uau_annotation- }} @UnsupportedAppUsage{{ -endif }}{{ -endif }} {{ if not library_exported }} @UnsupportedAppUsage{{ -endif }} public boolean {item.method_name}() \{ return getValue(Flags.FLAG_{item.flag_name_constant_suffix}, FeatureFlags::{item.method_name}); Loading