Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit deafa792 authored by Zhi Dou's avatar Zhi Dou
Browse files

aconfig: flag java lib enable optimization

This change adds annotation in the generated code. If the flag is read
only, annotations @com.android.aconfig.annotations.AssumeTrueForR8 or
@com.android.aconfig.annotations.AssumeFalseForR8 will be added in to
the corresponding methods in the interface FeatureFlags, and class
Flags.

Test: atest aconfig aconfig.test.java
Bug: 295328116
Change-Id: Ic1b62a86f0945a5e72ae2c4987cce77fe3f172e9
parent 6c462736
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -119,9 +119,12 @@ mod tests {
    const EXPECTED_FEATUREFLAGS_COMMON_CONTENT: &str = r#"
    package com.android.aconfig.test;
    public interface FeatureFlags {
        @com.android.aconfig.annotations.AssumeFalseForR8
        boolean disabledRo();
        boolean disabledRw();
        @com.android.aconfig.annotations.AssumeTrueForR8
        boolean enabledFixedRo();
        @com.android.aconfig.annotations.AssumeTrueForR8
        boolean enabledRo();
        boolean enabledRw();
    }
@@ -136,15 +139,18 @@ mod tests {
        public static final String FLAG_ENABLED_RO = "com.android.aconfig.test.enabled_ro";
        public static final String FLAG_ENABLED_RW = "com.android.aconfig.test.enabled_rw";

        @com.android.aconfig.annotations.AssumeFalseForR8
        public static boolean disabledRo() {
            return FEATURE_FLAGS.disabledRo();
        }
        public static boolean disabledRw() {
            return FEATURE_FLAGS.disabledRw();
        }
        @com.android.aconfig.annotations.AssumeTrueForR8
        public static boolean enabledFixedRo() {
            return FEATURE_FLAGS.enabledFixedRo();
        }
        @com.android.aconfig.annotations.AssumeTrueForR8
        public static boolean enabledRo() {
            return FEATURE_FLAGS.enabledRo();
        }
+7 −0
Original line number Diff line number Diff line
@@ -2,6 +2,13 @@ package {package_name};

public interface FeatureFlags \{
{{ 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 }}
    boolean {item.method_name}();
{{ endfor }}
}
+8 −1
Original line number Diff line number Diff line
@@ -5,6 +5,13 @@ public final class Flags \{
    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}();
    }