Update sys prop name from persist.device_config.<namespace>.<flag> to persist.aconfig_flags.aconfig_flags.<namespace>.<flag> Bug: b/295379636 Change-Id: I78f00daa574dc016902dce4b9b4ec961f973693c
62 lines
1.4 KiB
Plaintext
62 lines
1.4 KiB
Plaintext
//! codegenerated rust flag lib
|
|
|
|
use std::collections::BTreeMap;
|
|
use std::sync::Mutex;
|
|
|
|
/// flag provider
|
|
pub struct FlagProvider \{
|
|
overrides: BTreeMap<&'static str, bool>,
|
|
}
|
|
|
|
impl FlagProvider \{
|
|
{{ for flag in template_flags }}
|
|
/// query flag {flag.name}
|
|
pub fn {flag.name}(&self) -> bool \{
|
|
self.overrides.get("{flag.name}").copied().unwrap_or(
|
|
{{ if flag.readwrite -}}
|
|
flags_rust::GetServerConfigurableFlag(
|
|
"aconfig_flags.{flag.device_config_namespace}",
|
|
"{flag.device_config_flag}",
|
|
"{flag.default_value}") == "true"
|
|
{{ -else- }}
|
|
{flag.default_value}
|
|
{{ -endif }}
|
|
)
|
|
}
|
|
|
|
/// set flag {flag.name}
|
|
pub fn set_{flag.name}(&mut self, val: bool) \{
|
|
self.overrides.insert("{flag.name}", val);
|
|
}
|
|
{{ endfor }}
|
|
|
|
/// clear all flag overrides
|
|
pub fn reset_flags(&mut self) \{
|
|
self.overrides.clear();
|
|
}
|
|
}
|
|
|
|
/// flag provider
|
|
pub static PROVIDER: Mutex<FlagProvider> = Mutex::new(
|
|
FlagProvider \{overrides: BTreeMap::new()}
|
|
);
|
|
|
|
{{ for flag in template_flags }}
|
|
/// query flag {flag.name}
|
|
#[inline(always)]
|
|
pub fn {flag.name}() -> bool \{
|
|
PROVIDER.lock().unwrap().{flag.name}()
|
|
}
|
|
|
|
/// set flag {flag.name}
|
|
#[inline(always)]
|
|
pub fn set_{flag.name}(val: bool) \{
|
|
PROVIDER.lock().unwrap().set_{flag.name}(val);
|
|
}
|
|
{{ endfor }}
|
|
|
|
/// clear all flag override
|
|
pub fn reset_flags() \{
|
|
PROVIDER.lock().unwrap().reset_flags()
|
|
}
|