Loading tools/aconfig/src/codegen/cpp.rs +56 −0 Original line number Diff line number Diff line Loading @@ -170,6 +170,8 @@ public: virtual bool enabled_ro() = 0; virtual bool enabled_ro_exported() = 0; virtual bool enabled_rw() = 0; }; Loading Loading @@ -199,6 +201,10 @@ inline bool enabled_ro() { return true; } inline bool enabled_ro_exported() { return true; } inline bool enabled_rw() { return provider_->enabled_rw(); } Loading @@ -220,6 +226,8 @@ bool com_android_aconfig_test_enabled_fixed_ro(); bool com_android_aconfig_test_enabled_ro(); bool com_android_aconfig_test_enabled_ro_exported(); bool com_android_aconfig_test_enabled_rw(); #ifdef __cplusplus Loading Loading @@ -265,6 +273,10 @@ public: virtual void enabled_ro(bool val) = 0; virtual bool enabled_ro_exported() = 0; virtual void enabled_ro_exported(bool val) = 0; virtual bool enabled_rw() = 0; virtual void enabled_rw(bool val) = 0; Loading Loading @@ -322,6 +334,14 @@ inline void enabled_ro(bool val) { provider_->enabled_ro(val); } inline bool enabled_ro_exported() { return provider_->enabled_ro_exported(); } inline void enabled_ro_exported(bool val) { provider_->enabled_ro_exported(val); } inline bool enabled_rw() { return provider_->enabled_rw(); } Loading Loading @@ -363,6 +383,10 @@ bool com_android_aconfig_test_enabled_ro(); void set_com_android_aconfig_test_enabled_ro(bool val); bool com_android_aconfig_test_enabled_ro_exported(); void set_com_android_aconfig_test_enabled_ro_exported(bool val); bool com_android_aconfig_test_enabled_rw(); void set_com_android_aconfig_test_enabled_rw(bool val); Loading Loading @@ -429,6 +453,10 @@ namespace com::android::aconfig::test { return true; } virtual bool enabled_ro_exported() override { return true; } virtual bool enabled_rw() override { if (cache_[3] == -1) { cache_[3] = server_configurable_flags::GetServerConfigurableFlag( Loading Loading @@ -471,6 +499,10 @@ bool com_android_aconfig_test_enabled_ro() { return true; } bool com_android_aconfig_test_enabled_ro_exported() { return true; } bool com_android_aconfig_test_enabled_rw() { return com::android::aconfig::test::enabled_rw(); } Loading Loading @@ -581,6 +613,19 @@ namespace com::android::aconfig::test { overrides_["enabled_ro"] = val; } virtual bool enabled_ro_exported() override { auto it = overrides_.find("enabled_ro_exported"); if (it != overrides_.end()) { return it->second; } else { return true; } } virtual void enabled_ro_exported(bool val) override { overrides_["enabled_ro_exported"] = val; } virtual bool enabled_rw() override { auto it = overrides_.find("enabled_rw"); if (it != overrides_.end()) { Loading Loading @@ -661,6 +706,17 @@ void set_com_android_aconfig_test_enabled_ro(bool val) { com::android::aconfig::test::enabled_ro(val); } bool com_android_aconfig_test_enabled_ro_exported() { return com::android::aconfig::test::enabled_ro_exported(); } void set_com_android_aconfig_test_enabled_ro_exported(bool val) { com::android::aconfig::test::enabled_ro_exported(val); } bool com_android_aconfig_test_enabled_rw() { return com::android::aconfig::test::enabled_rw(); } Loading tools/aconfig/src/codegen/java.rs +47 −19 Original line number Diff line number Diff line Loading @@ -193,6 +193,9 @@ mod tests { @com.android.aconfig.annotations.AssumeTrueForR8 @UnsupportedAppUsage boolean enabledRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @UnsupportedAppUsage boolean enabledRoExported(); @UnsupportedAppUsage boolean enabledRw(); } Loading @@ -217,6 +220,8 @@ mod tests { /** @hide */ public static final String FLAG_ENABLED_RO = "com.android.aconfig.test.enabled_ro"; /** @hide */ public static final String FLAG_ENABLED_RO_EXPORTED = "com.android.aconfig.test.enabled_ro_exported"; /** @hide */ public static final String FLAG_ENABLED_RW = "com.android.aconfig.test.enabled_rw"; @com.android.aconfig.annotations.AssumeFalseForR8 Loading Loading @@ -246,6 +251,11 @@ mod tests { public static boolean enabledRo() { return FEATURE_FLAGS.enabledRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @UnsupportedAppUsage public static boolean enabledRoExported() { return FEATURE_FLAGS.enabledRoExported(); } @UnsupportedAppUsage public static boolean enabledRw() { return FEATURE_FLAGS.enabledRw(); Loading Loading @@ -295,6 +305,11 @@ mod tests { } @Override @UnsupportedAppUsage public boolean enabledRoExported() { return getValue(Flags.FLAG_ENABLED_RO_EXPORTED); } @Override @UnsupportedAppUsage public boolean enabledRw() { return getValue(Flags.FLAG_ENABLED_RW); } Loading Loading @@ -324,6 +339,7 @@ mod tests { Map.entry(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, false), Map.entry(Flags.FLAG_ENABLED_FIXED_RO, false), Map.entry(Flags.FLAG_ENABLED_RO, false), Map.entry(Flags.FLAG_ENABLED_RO_EXPORTED, false), Map.entry(Flags.FLAG_ENABLED_RW, false) ) ); Loading Loading @@ -442,6 +458,11 @@ mod tests { } @Override @UnsupportedAppUsage public boolean enabledRoExported() { return true; } @Override @UnsupportedAppUsage public boolean enabledRw() { if (!aconfig_test_is_cached) { load_overrides_aconfig_test(); Loading Loading @@ -494,19 +515,19 @@ mod tests { import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public final class Flags { /** @hide */ public static final String FLAG_DISABLED_RW = "com.android.aconfig.test.disabled_rw"; /** @hide */ public static final String FLAG_DISABLED_RW_EXPORTED = "com.android.aconfig.test.disabled_rw_exported"; /** @hide */ public static final String FLAG_ENABLED_RO_EXPORTED = "com.android.aconfig.test.enabled_ro_exported"; @UnsupportedAppUsage public static boolean disabledRw() { return FEATURE_FLAGS.disabledRw(); } @UnsupportedAppUsage public static boolean disabledRwExported() { return FEATURE_FLAGS.disabledRwExported(); } @UnsupportedAppUsage public static boolean enabledRoExported() { return FEATURE_FLAGS.enabledRoExported(); } private static FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl(); } "#; Loading @@ -517,10 +538,10 @@ mod tests { import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public interface FeatureFlags { @UnsupportedAppUsage boolean disabledRw(); @UnsupportedAppUsage boolean disabledRwExported(); @UnsupportedAppUsage boolean enabledRoExported(); } "#; Loading @@ -534,17 +555,17 @@ mod tests { public final class FeatureFlagsImpl implements FeatureFlags { private static boolean aconfig_test_is_cached = false; private static boolean other_namespace_is_cached = false; private static boolean disabledRw = false; private static boolean disabledRwExported = false; private static boolean enabledRoExported = false; private void load_overrides_aconfig_test() { try { Properties properties = DeviceConfig.getProperties("aconfig_test"); disabledRw = properties.getBoolean("com.android.aconfig.test.disabled_rw", false); disabledRwExported = properties.getBoolean("com.android.aconfig.test.disabled_rw_exported", false); enabledRoExported = properties.getBoolean("com.android.aconfig.test.enabled_ro_exported", false); } catch (NullPointerException e) { throw new RuntimeException( "Cannot read value from namespace aconfig_test " Loading Loading @@ -576,20 +597,20 @@ mod tests { @Override @UnsupportedAppUsage public boolean disabledRw() { public boolean disabledRwExported() { if (!aconfig_test_is_cached) { load_overrides_aconfig_test(); } return disabledRw; return disabledRwExported; } @Override @UnsupportedAppUsage public boolean disabledRwExported() { public boolean enabledRoExported() { if (!aconfig_test_is_cached) { load_overrides_aconfig_test(); } return disabledRwExported; return enabledRoExported; } }"#; Loading @@ -606,13 +627,13 @@ mod tests { } @Override @UnsupportedAppUsage public boolean disabledRw() { return getValue(Flags.FLAG_DISABLED_RW); public boolean disabledRwExported() { return getValue(Flags.FLAG_DISABLED_RW_EXPORTED); } @Override @UnsupportedAppUsage public boolean disabledRwExported() { return getValue(Flags.FLAG_DISABLED_RW_EXPORTED); public boolean enabledRoExported() { return getValue(Flags.FLAG_ENABLED_RO_EXPORTED); } public void setFlag(String flagName, boolean value) { if (!this.mFlagMap.containsKey(flagName)) { Loading Loading @@ -640,6 +661,7 @@ mod tests { Map.entry(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, false), Map.entry(Flags.FLAG_ENABLED_FIXED_RO, false), Map.entry(Flags.FLAG_ENABLED_RO, false), Map.entry(Flags.FLAG_ENABLED_RO_EXPORTED, false), Map.entry(Flags.FLAG_ENABLED_RW, false) ) ); Loading Loading @@ -739,6 +761,12 @@ mod tests { } @Override @UnsupportedAppUsage public boolean enabledRoExported() { throw new UnsupportedOperationException( "Method is not implemented."); } @Override @UnsupportedAppUsage public boolean enabledRw() { throw new UnsupportedOperationException( "Method is not implemented."); Loading tools/aconfig/src/codegen/rust.rs +35 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,11 @@ impl FlagProvider { true } /// query flag enabled_ro_exported pub fn enabled_ro_exported(&self) -> bool { true } /// query flag enabled_rw pub fn enabled_rw(&self) -> bool { *CACHED_enabled_rw Loading Loading @@ -203,6 +208,12 @@ pub fn enabled_ro() -> bool { true } /// query flag enabled_ro_exported #[inline(always)] pub fn enabled_ro_exported() -> bool { true } /// query flag enabled_rw #[inline(always)] pub fn enabled_rw() -> bool { Loading Loading @@ -303,6 +314,18 @@ impl FlagProvider { self.overrides.insert("enabled_ro", val); } /// query flag enabled_ro_exported pub fn enabled_ro_exported(&self) -> bool { self.overrides.get("enabled_ro_exported").copied().unwrap_or( true ) } /// set flag enabled_ro_exported pub fn set_enabled_ro_exported(&mut self, val: bool) { self.overrides.insert("enabled_ro_exported", val); } /// query flag enabled_rw pub fn enabled_rw(&self) -> bool { self.overrides.get("enabled_rw").copied().unwrap_or( Loading Loading @@ -401,6 +424,18 @@ pub fn set_enabled_ro(val: bool) { PROVIDER.lock().unwrap().set_enabled_ro(val); } /// query flag enabled_ro_exported #[inline(always)] pub fn enabled_ro_exported() -> bool { PROVIDER.lock().unwrap().enabled_ro_exported() } /// set flag enabled_ro_exported #[inline(always)] pub fn set_enabled_ro_exported(val: bool) { PROVIDER.lock().unwrap().set_enabled_ro_exported(val); } /// query flag enabled_rw #[inline(always)] pub fn enabled_rw() -> bool { Loading tools/aconfig/src/commands.rs +1 −1 Original line number Diff line number Diff line Loading @@ -370,7 +370,7 @@ mod tests { assert_eq!(ProtoFlagState::ENABLED, enabled_ro.trace[2].state()); assert_eq!(ProtoFlagPermission::READ_ONLY, enabled_ro.trace[2].permission()); assert_eq!(7, parsed_flags.parsed_flag.len()); assert_eq!(8, parsed_flags.parsed_flag.len()); for pf in parsed_flags.parsed_flag.iter() { if pf.name() == "enabled_fixed_ro" { continue; Loading tools/aconfig/src/test.rs +27 −2 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ parsed_flag { permission: READ_WRITE } is_fixed_read_only: false is_exported: true is_exported: false container: "system" metadata { purpose: PURPOSE_UNSPECIFIED Loading @@ -72,7 +72,7 @@ parsed_flag { package: "com.android.aconfig.test" name: "disabled_rw_exported" namespace: "aconfig_test" description: "This flag is exported" description: "This flag is DISABLED + READ_WRITE and exported" bug: "111" state: DISABLED permission: READ_WRITE Loading Loading @@ -173,6 +173,31 @@ parsed_flag { purpose: PURPOSE_BUGFIX } } parsed_flag { package: "com.android.aconfig.test" name: "enabled_ro_exported" namespace: "aconfig_test" description: "This flag is ENABLED + READ_ONLY and exported" bug: "111" state: ENABLED permission: READ_ONLY trace { source: "tests/test.aconfig" state: DISABLED permission: READ_WRITE } trace { source: "tests/first.values" state: ENABLED permission: READ_ONLY } is_fixed_read_only: false is_exported: true container: "system" metadata { purpose: PURPOSE_UNSPECIFIED } } parsed_flag { package: "com.android.aconfig.test" name: "enabled_rw" Loading Loading
tools/aconfig/src/codegen/cpp.rs +56 −0 Original line number Diff line number Diff line Loading @@ -170,6 +170,8 @@ public: virtual bool enabled_ro() = 0; virtual bool enabled_ro_exported() = 0; virtual bool enabled_rw() = 0; }; Loading Loading @@ -199,6 +201,10 @@ inline bool enabled_ro() { return true; } inline bool enabled_ro_exported() { return true; } inline bool enabled_rw() { return provider_->enabled_rw(); } Loading @@ -220,6 +226,8 @@ bool com_android_aconfig_test_enabled_fixed_ro(); bool com_android_aconfig_test_enabled_ro(); bool com_android_aconfig_test_enabled_ro_exported(); bool com_android_aconfig_test_enabled_rw(); #ifdef __cplusplus Loading Loading @@ -265,6 +273,10 @@ public: virtual void enabled_ro(bool val) = 0; virtual bool enabled_ro_exported() = 0; virtual void enabled_ro_exported(bool val) = 0; virtual bool enabled_rw() = 0; virtual void enabled_rw(bool val) = 0; Loading Loading @@ -322,6 +334,14 @@ inline void enabled_ro(bool val) { provider_->enabled_ro(val); } inline bool enabled_ro_exported() { return provider_->enabled_ro_exported(); } inline void enabled_ro_exported(bool val) { provider_->enabled_ro_exported(val); } inline bool enabled_rw() { return provider_->enabled_rw(); } Loading Loading @@ -363,6 +383,10 @@ bool com_android_aconfig_test_enabled_ro(); void set_com_android_aconfig_test_enabled_ro(bool val); bool com_android_aconfig_test_enabled_ro_exported(); void set_com_android_aconfig_test_enabled_ro_exported(bool val); bool com_android_aconfig_test_enabled_rw(); void set_com_android_aconfig_test_enabled_rw(bool val); Loading Loading @@ -429,6 +453,10 @@ namespace com::android::aconfig::test { return true; } virtual bool enabled_ro_exported() override { return true; } virtual bool enabled_rw() override { if (cache_[3] == -1) { cache_[3] = server_configurable_flags::GetServerConfigurableFlag( Loading Loading @@ -471,6 +499,10 @@ bool com_android_aconfig_test_enabled_ro() { return true; } bool com_android_aconfig_test_enabled_ro_exported() { return true; } bool com_android_aconfig_test_enabled_rw() { return com::android::aconfig::test::enabled_rw(); } Loading Loading @@ -581,6 +613,19 @@ namespace com::android::aconfig::test { overrides_["enabled_ro"] = val; } virtual bool enabled_ro_exported() override { auto it = overrides_.find("enabled_ro_exported"); if (it != overrides_.end()) { return it->second; } else { return true; } } virtual void enabled_ro_exported(bool val) override { overrides_["enabled_ro_exported"] = val; } virtual bool enabled_rw() override { auto it = overrides_.find("enabled_rw"); if (it != overrides_.end()) { Loading Loading @@ -661,6 +706,17 @@ void set_com_android_aconfig_test_enabled_ro(bool val) { com::android::aconfig::test::enabled_ro(val); } bool com_android_aconfig_test_enabled_ro_exported() { return com::android::aconfig::test::enabled_ro_exported(); } void set_com_android_aconfig_test_enabled_ro_exported(bool val) { com::android::aconfig::test::enabled_ro_exported(val); } bool com_android_aconfig_test_enabled_rw() { return com::android::aconfig::test::enabled_rw(); } Loading
tools/aconfig/src/codegen/java.rs +47 −19 Original line number Diff line number Diff line Loading @@ -193,6 +193,9 @@ mod tests { @com.android.aconfig.annotations.AssumeTrueForR8 @UnsupportedAppUsage boolean enabledRo(); @com.android.aconfig.annotations.AssumeTrueForR8 @UnsupportedAppUsage boolean enabledRoExported(); @UnsupportedAppUsage boolean enabledRw(); } Loading @@ -217,6 +220,8 @@ mod tests { /** @hide */ public static final String FLAG_ENABLED_RO = "com.android.aconfig.test.enabled_ro"; /** @hide */ public static final String FLAG_ENABLED_RO_EXPORTED = "com.android.aconfig.test.enabled_ro_exported"; /** @hide */ public static final String FLAG_ENABLED_RW = "com.android.aconfig.test.enabled_rw"; @com.android.aconfig.annotations.AssumeFalseForR8 Loading Loading @@ -246,6 +251,11 @@ mod tests { public static boolean enabledRo() { return FEATURE_FLAGS.enabledRo(); } @com.android.aconfig.annotations.AssumeTrueForR8 @UnsupportedAppUsage public static boolean enabledRoExported() { return FEATURE_FLAGS.enabledRoExported(); } @UnsupportedAppUsage public static boolean enabledRw() { return FEATURE_FLAGS.enabledRw(); Loading Loading @@ -295,6 +305,11 @@ mod tests { } @Override @UnsupportedAppUsage public boolean enabledRoExported() { return getValue(Flags.FLAG_ENABLED_RO_EXPORTED); } @Override @UnsupportedAppUsage public boolean enabledRw() { return getValue(Flags.FLAG_ENABLED_RW); } Loading Loading @@ -324,6 +339,7 @@ mod tests { Map.entry(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, false), Map.entry(Flags.FLAG_ENABLED_FIXED_RO, false), Map.entry(Flags.FLAG_ENABLED_RO, false), Map.entry(Flags.FLAG_ENABLED_RO_EXPORTED, false), Map.entry(Flags.FLAG_ENABLED_RW, false) ) ); Loading Loading @@ -442,6 +458,11 @@ mod tests { } @Override @UnsupportedAppUsage public boolean enabledRoExported() { return true; } @Override @UnsupportedAppUsage public boolean enabledRw() { if (!aconfig_test_is_cached) { load_overrides_aconfig_test(); Loading Loading @@ -494,19 +515,19 @@ mod tests { import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public final class Flags { /** @hide */ public static final String FLAG_DISABLED_RW = "com.android.aconfig.test.disabled_rw"; /** @hide */ public static final String FLAG_DISABLED_RW_EXPORTED = "com.android.aconfig.test.disabled_rw_exported"; /** @hide */ public static final String FLAG_ENABLED_RO_EXPORTED = "com.android.aconfig.test.enabled_ro_exported"; @UnsupportedAppUsage public static boolean disabledRw() { return FEATURE_FLAGS.disabledRw(); } @UnsupportedAppUsage public static boolean disabledRwExported() { return FEATURE_FLAGS.disabledRwExported(); } @UnsupportedAppUsage public static boolean enabledRoExported() { return FEATURE_FLAGS.enabledRoExported(); } private static FeatureFlags FEATURE_FLAGS = new FeatureFlagsImpl(); } "#; Loading @@ -517,10 +538,10 @@ mod tests { import android.compat.annotation.UnsupportedAppUsage; /** @hide */ public interface FeatureFlags { @UnsupportedAppUsage boolean disabledRw(); @UnsupportedAppUsage boolean disabledRwExported(); @UnsupportedAppUsage boolean enabledRoExported(); } "#; Loading @@ -534,17 +555,17 @@ mod tests { public final class FeatureFlagsImpl implements FeatureFlags { private static boolean aconfig_test_is_cached = false; private static boolean other_namespace_is_cached = false; private static boolean disabledRw = false; private static boolean disabledRwExported = false; private static boolean enabledRoExported = false; private void load_overrides_aconfig_test() { try { Properties properties = DeviceConfig.getProperties("aconfig_test"); disabledRw = properties.getBoolean("com.android.aconfig.test.disabled_rw", false); disabledRwExported = properties.getBoolean("com.android.aconfig.test.disabled_rw_exported", false); enabledRoExported = properties.getBoolean("com.android.aconfig.test.enabled_ro_exported", false); } catch (NullPointerException e) { throw new RuntimeException( "Cannot read value from namespace aconfig_test " Loading Loading @@ -576,20 +597,20 @@ mod tests { @Override @UnsupportedAppUsage public boolean disabledRw() { public boolean disabledRwExported() { if (!aconfig_test_is_cached) { load_overrides_aconfig_test(); } return disabledRw; return disabledRwExported; } @Override @UnsupportedAppUsage public boolean disabledRwExported() { public boolean enabledRoExported() { if (!aconfig_test_is_cached) { load_overrides_aconfig_test(); } return disabledRwExported; return enabledRoExported; } }"#; Loading @@ -606,13 +627,13 @@ mod tests { } @Override @UnsupportedAppUsage public boolean disabledRw() { return getValue(Flags.FLAG_DISABLED_RW); public boolean disabledRwExported() { return getValue(Flags.FLAG_DISABLED_RW_EXPORTED); } @Override @UnsupportedAppUsage public boolean disabledRwExported() { return getValue(Flags.FLAG_DISABLED_RW_EXPORTED); public boolean enabledRoExported() { return getValue(Flags.FLAG_ENABLED_RO_EXPORTED); } public void setFlag(String flagName, boolean value) { if (!this.mFlagMap.containsKey(flagName)) { Loading Loading @@ -640,6 +661,7 @@ mod tests { Map.entry(Flags.FLAG_DISABLED_RW_IN_OTHER_NAMESPACE, false), Map.entry(Flags.FLAG_ENABLED_FIXED_RO, false), Map.entry(Flags.FLAG_ENABLED_RO, false), Map.entry(Flags.FLAG_ENABLED_RO_EXPORTED, false), Map.entry(Flags.FLAG_ENABLED_RW, false) ) ); Loading Loading @@ -739,6 +761,12 @@ mod tests { } @Override @UnsupportedAppUsage public boolean enabledRoExported() { throw new UnsupportedOperationException( "Method is not implemented."); } @Override @UnsupportedAppUsage public boolean enabledRw() { throw new UnsupportedOperationException( "Method is not implemented."); Loading
tools/aconfig/src/codegen/rust.rs +35 −0 Original line number Diff line number Diff line Loading @@ -158,6 +158,11 @@ impl FlagProvider { true } /// query flag enabled_ro_exported pub fn enabled_ro_exported(&self) -> bool { true } /// query flag enabled_rw pub fn enabled_rw(&self) -> bool { *CACHED_enabled_rw Loading Loading @@ -203,6 +208,12 @@ pub fn enabled_ro() -> bool { true } /// query flag enabled_ro_exported #[inline(always)] pub fn enabled_ro_exported() -> bool { true } /// query flag enabled_rw #[inline(always)] pub fn enabled_rw() -> bool { Loading Loading @@ -303,6 +314,18 @@ impl FlagProvider { self.overrides.insert("enabled_ro", val); } /// query flag enabled_ro_exported pub fn enabled_ro_exported(&self) -> bool { self.overrides.get("enabled_ro_exported").copied().unwrap_or( true ) } /// set flag enabled_ro_exported pub fn set_enabled_ro_exported(&mut self, val: bool) { self.overrides.insert("enabled_ro_exported", val); } /// query flag enabled_rw pub fn enabled_rw(&self) -> bool { self.overrides.get("enabled_rw").copied().unwrap_or( Loading Loading @@ -401,6 +424,18 @@ pub fn set_enabled_ro(val: bool) { PROVIDER.lock().unwrap().set_enabled_ro(val); } /// query flag enabled_ro_exported #[inline(always)] pub fn enabled_ro_exported() -> bool { PROVIDER.lock().unwrap().enabled_ro_exported() } /// set flag enabled_ro_exported #[inline(always)] pub fn set_enabled_ro_exported(val: bool) { PROVIDER.lock().unwrap().set_enabled_ro_exported(val); } /// query flag enabled_rw #[inline(always)] pub fn enabled_rw() -> bool { Loading
tools/aconfig/src/commands.rs +1 −1 Original line number Diff line number Diff line Loading @@ -370,7 +370,7 @@ mod tests { assert_eq!(ProtoFlagState::ENABLED, enabled_ro.trace[2].state()); assert_eq!(ProtoFlagPermission::READ_ONLY, enabled_ro.trace[2].permission()); assert_eq!(7, parsed_flags.parsed_flag.len()); assert_eq!(8, parsed_flags.parsed_flag.len()); for pf in parsed_flags.parsed_flag.iter() { if pf.name() == "enabled_fixed_ro" { continue; Loading
tools/aconfig/src/test.rs +27 −2 Original line number Diff line number Diff line Loading @@ -62,7 +62,7 @@ parsed_flag { permission: READ_WRITE } is_fixed_read_only: false is_exported: true is_exported: false container: "system" metadata { purpose: PURPOSE_UNSPECIFIED Loading @@ -72,7 +72,7 @@ parsed_flag { package: "com.android.aconfig.test" name: "disabled_rw_exported" namespace: "aconfig_test" description: "This flag is exported" description: "This flag is DISABLED + READ_WRITE and exported" bug: "111" state: DISABLED permission: READ_WRITE Loading Loading @@ -173,6 +173,31 @@ parsed_flag { purpose: PURPOSE_BUGFIX } } parsed_flag { package: "com.android.aconfig.test" name: "enabled_ro_exported" namespace: "aconfig_test" description: "This flag is ENABLED + READ_ONLY and exported" bug: "111" state: ENABLED permission: READ_ONLY trace { source: "tests/test.aconfig" state: DISABLED permission: READ_WRITE } trace { source: "tests/first.values" state: ENABLED permission: READ_ONLY } is_fixed_read_only: false is_exported: true container: "system" metadata { purpose: PURPOSE_UNSPECIFIED } } parsed_flag { package: "com.android.aconfig.test" name: "enabled_rw" Loading