Merge "aconfig: throw exception if reading from DeviceConfig fails" into main
This commit is contained in:
@@ -177,23 +177,23 @@ mod tests {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean disabledRo() {
|
public boolean disabledRo() {
|
||||||
return getFlag(Flags.FLAG_DISABLED_RO);
|
return getValue(Flags.FLAG_DISABLED_RO);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean disabledRw() {
|
public boolean disabledRw() {
|
||||||
return getFlag(Flags.FLAG_DISABLED_RW);
|
return getValue(Flags.FLAG_DISABLED_RW);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean enabledFixedRo() {
|
public boolean enabledFixedRo() {
|
||||||
return getFlag(Flags.FLAG_ENABLED_FIXED_RO);
|
return getValue(Flags.FLAG_ENABLED_FIXED_RO);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean enabledRo() {
|
public boolean enabledRo() {
|
||||||
return getFlag(Flags.FLAG_ENABLED_RO);
|
return getValue(Flags.FLAG_ENABLED_RO);
|
||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean enabledRw() {
|
public boolean enabledRw() {
|
||||||
return getFlag(Flags.FLAG_ENABLED_RW);
|
return getValue(Flags.FLAG_ENABLED_RW);
|
||||||
}
|
}
|
||||||
public void setFlag(String flagName, boolean value) {
|
public void setFlag(String flagName, boolean value) {
|
||||||
if (!this.mFlagMap.containsKey(flagName)) {
|
if (!this.mFlagMap.containsKey(flagName)) {
|
||||||
@@ -206,7 +206,7 @@ mod tests {
|
|||||||
entry.setValue(null);
|
entry.setValue(null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private boolean getFlag(String flagName) {
|
private boolean getValue(String flagName) {
|
||||||
Boolean value = this.mFlagMap.get(flagName);
|
Boolean value = this.mFlagMap.get(flagName);
|
||||||
if (value == null) {
|
if (value == null) {
|
||||||
throw new IllegalArgumentException(flagName + " is not set");
|
throw new IllegalArgumentException(flagName + " is not set");
|
||||||
@@ -250,7 +250,7 @@ mod tests {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean disabledRw() {
|
public boolean disabledRw() {
|
||||||
return DeviceConfig.getBoolean(
|
return getValue(
|
||||||
"aconfig_test",
|
"aconfig_test",
|
||||||
"com.android.aconfig.test.disabled_rw",
|
"com.android.aconfig.test.disabled_rw",
|
||||||
false
|
false
|
||||||
@@ -266,12 +266,33 @@ mod tests {
|
|||||||
}
|
}
|
||||||
@Override
|
@Override
|
||||||
public boolean enabledRw() {
|
public boolean enabledRw() {
|
||||||
return DeviceConfig.getBoolean(
|
return getValue(
|
||||||
"aconfig_test",
|
"aconfig_test",
|
||||||
"com.android.aconfig.test.enabled_rw",
|
"com.android.aconfig.test.enabled_rw",
|
||||||
true
|
true
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
private boolean getValue(String nameSpace,
|
||||||
|
String flagName, boolean defaultValue) {
|
||||||
|
boolean value = defaultValue;
|
||||||
|
try {
|
||||||
|
value = DeviceConfig.getBoolean(
|
||||||
|
nameSpace,
|
||||||
|
flagName,
|
||||||
|
defaultValue
|
||||||
|
);
|
||||||
|
} catch (NullPointerException e) {
|
||||||
|
throw new RuntimeException(
|
||||||
|
"Cannot read value of flag " + flagName + " from DeviceConfig. " +
|
||||||
|
"It could be that the code using flag executed " +
|
||||||
|
"before SettingsProvider initialization. " +
|
||||||
|
"Please use fixed read-only flag by adding " +
|
||||||
|
"is_fixed_read_only: true in flag declaration.",
|
||||||
|
e
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
"#;
|
"#;
|
||||||
let mut file_set = HashMap::from([
|
let mut file_set = HashMap::from([
|
||||||
|
@@ -12,7 +12,7 @@ public class FakeFeatureFlagsImpl implements FeatureFlags \{
|
|||||||
{{ for item in class_elements}}
|
{{ for item in class_elements}}
|
||||||
@Override
|
@Override
|
||||||
public boolean {item.method_name}() \{
|
public boolean {item.method_name}() \{
|
||||||
return getFlag(Flags.FLAG_{item.flag_name_constant_suffix});
|
return getValue(Flags.FLAG_{item.flag_name_constant_suffix});
|
||||||
}
|
}
|
||||||
{{ endfor}}
|
{{ endfor}}
|
||||||
public void setFlag(String flagName, boolean value) \{
|
public void setFlag(String flagName, boolean value) \{
|
||||||
@@ -28,7 +28,7 @@ public class FakeFeatureFlagsImpl implements FeatureFlags \{
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean getFlag(String flagName) \{
|
private boolean getValue(String flagName) \{
|
||||||
Boolean value = this.mFlagMap.get(flagName);
|
Boolean value = this.mFlagMap.get(flagName);
|
||||||
if (value == null) \{
|
if (value == null) \{
|
||||||
throw new IllegalArgumentException(flagName + " is not set");
|
throw new IllegalArgumentException(flagName + " is not set");
|
||||||
|
@@ -9,7 +9,7 @@ public final class FeatureFlagsImpl implements FeatureFlags \{
|
|||||||
@Override
|
@Override
|
||||||
public boolean {item.method_name}() \{
|
public boolean {item.method_name}() \{
|
||||||
{{ -if item.is_read_write }}
|
{{ -if item.is_read_write }}
|
||||||
return DeviceConfig.getBoolean(
|
return getValue(
|
||||||
"{item.device_config_namespace}",
|
"{item.device_config_namespace}",
|
||||||
"{item.device_config_flag}",
|
"{item.device_config_flag}",
|
||||||
{item.default_value}
|
{item.default_value}
|
||||||
@@ -19,6 +19,29 @@ public final class FeatureFlagsImpl implements FeatureFlags \{
|
|||||||
{{ endif- }}
|
{{ endif- }}
|
||||||
}
|
}
|
||||||
{{ endfor }}
|
{{ endfor }}
|
||||||
|
{{ if is_read_write- }}
|
||||||
|
private boolean getValue(String nameSpace,
|
||||||
|
String flagName, boolean defaultValue) \{
|
||||||
|
boolean value = defaultValue;
|
||||||
|
try \{
|
||||||
|
value = DeviceConfig.getBoolean(
|
||||||
|
nameSpace,
|
||||||
|
flagName,
|
||||||
|
defaultValue
|
||||||
|
);
|
||||||
|
} catch (NullPointerException e) \{
|
||||||
|
throw new RuntimeException(
|
||||||
|
"Cannot read value of flag " + flagName + " from DeviceConfig. " +
|
||||||
|
"It could be that the code using flag executed " +
|
||||||
|
"before SettingsProvider initialization. " +
|
||||||
|
"Please use fixed read-only flag by adding " +
|
||||||
|
"is_fixed_read_only: true in flag declaration.",
|
||||||
|
e
|
||||||
|
);
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
{{ endif- }}
|
||||||
}
|
}
|
||||||
{{ else }}
|
{{ else }}
|
||||||
{#- Generate only stub if in test mode #}
|
{#- Generate only stub if in test mode #}
|
||||||
|
Reference in New Issue
Block a user