carriersettings-extractor: Move element extraction to separate function
Prepare for bundle support. Change-Id: I2f9fe500beee1130b95e526ebd4a84d6fd3f4766
This commit is contained in:
committed by
Michael Bestas
parent
26561a8b67
commit
0bdaa22666
@@ -43,6 +43,100 @@ def parse_args():
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
unwanted_configs = [
|
||||
# Anything where the value is a package name
|
||||
"carrier_app_wake_signal_config",
|
||||
"carrier_settings_activity_component_name_string",
|
||||
"carrier_setup_app_string",
|
||||
"config_ims_package_override_string",
|
||||
"enable_apps_string_array",
|
||||
"gps.nfw_proxy_apps",
|
||||
"smart_forwarding_config_component_name_string",
|
||||
"wfc_emergency_address_carrier_app_string",
|
||||
# Always allow editing APNs
|
||||
"apn_expand_bool",
|
||||
"allow_adding_apns_bool",
|
||||
"read_only_apn_types_string_array",
|
||||
"read_only_apn_fields_string_array"]
|
||||
|
||||
|
||||
def extract_elements(carrier_config_element, config):
|
||||
if config.key in unwanted_configs:
|
||||
return
|
||||
value_type = config.WhichOneof('value')
|
||||
if value_type == 'text_value':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'string',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.text = getattr(config, value_type)
|
||||
elif value_type == 'int_value':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'int',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'value',
|
||||
str(getattr(config, value_type)),
|
||||
)
|
||||
elif value_type == 'long_value':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'long',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'value',
|
||||
str(getattr(config, value_type)),
|
||||
)
|
||||
elif value_type == "bool_value":
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'boolean',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'value',
|
||||
str(getattr(config, value_type)).lower(),
|
||||
)
|
||||
elif value_type == 'text_array':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'string-array',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'num',
|
||||
str(len(getattr(config, value_type).item)),
|
||||
)
|
||||
for value in getattr(config, value_type).item:
|
||||
carrier_config_item = ET.SubElement(
|
||||
carrier_config_subelement,
|
||||
'item',
|
||||
)
|
||||
carrier_config_item.set('value', value)
|
||||
elif value_type == 'int_array':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'int-array',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'num',
|
||||
str(len(getattr(config, value_type).item)),
|
||||
)
|
||||
for value in getattr(config, value_type).item:
|
||||
carrier_config_item = ET.SubElement(
|
||||
carrier_config_subelement,
|
||||
'item',
|
||||
)
|
||||
carrier_config_item.set('value', str(value))
|
||||
else:
|
||||
raise TypeError("Unknown value type: {}".format(value_type))
|
||||
|
||||
|
||||
def main():
|
||||
args = parse_args()
|
||||
|
||||
@@ -50,22 +144,6 @@ def main():
|
||||
apns_folder = args.apns
|
||||
vendor_folder = args.vendor
|
||||
|
||||
unwanted_configs = [
|
||||
# Anything where the value is a package name
|
||||
"carrier_app_wake_signal_config",
|
||||
"carrier_settings_activity_component_name_string",
|
||||
"carrier_setup_app_string",
|
||||
"config_ims_package_override_string",
|
||||
"enable_apps_string_array",
|
||||
"gps.nfw_proxy_apps",
|
||||
"smart_forwarding_config_component_name_string",
|
||||
"wfc_emergency_address_carrier_app_string",
|
||||
# Always allow editing APNs
|
||||
"apn_expand_bool",
|
||||
"allow_adding_apns_bool",
|
||||
"read_only_apn_types_string_array",
|
||||
"read_only_apn_fields_string_array"]
|
||||
|
||||
carrier_id_list = CarrierIdList()
|
||||
carrier_attribute_map = {}
|
||||
with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'carrier_list.pb'), 'rb') as pb:
|
||||
@@ -237,80 +315,7 @@ def main():
|
||||
getattr(entry.carrier_id[0], field),
|
||||
)
|
||||
for config in setting.configs.config:
|
||||
if config.key in unwanted_configs:
|
||||
continue
|
||||
value_type = config.WhichOneof('value')
|
||||
if value_type == 'text_value':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'string',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.text = getattr(config, value_type)
|
||||
elif value_type == 'int_value':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'int',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'value',
|
||||
str(getattr(config, value_type)),
|
||||
)
|
||||
elif value_type == 'long_value':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'long',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'value',
|
||||
str(getattr(config, value_type)),
|
||||
)
|
||||
elif value_type == "bool_value":
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'boolean',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'value',
|
||||
str(getattr(config, value_type)).lower(),
|
||||
)
|
||||
elif value_type == 'text_array':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'string-array',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'num',
|
||||
str(len(getattr(config, value_type).item)),
|
||||
)
|
||||
for value in getattr(config, value_type).item:
|
||||
carrier_config_item = ET.SubElement(
|
||||
carrier_config_subelement,
|
||||
'item',
|
||||
)
|
||||
carrier_config_item.set('value', value)
|
||||
elif value_type == 'int_array':
|
||||
carrier_config_subelement = ET.SubElement(
|
||||
carrier_config_element,
|
||||
'int-array',
|
||||
)
|
||||
carrier_config_subelement.set('name', config.key)
|
||||
carrier_config_subelement.set(
|
||||
'num',
|
||||
str(len(getattr(config, value_type).item)),
|
||||
)
|
||||
for value in getattr(config, value_type).item:
|
||||
carrier_config_item = ET.SubElement(
|
||||
carrier_config_subelement,
|
||||
'item',
|
||||
)
|
||||
carrier_config_item.set('value', str(value))
|
||||
else:
|
||||
raise TypeError("Unknown value type: {}".format(value_type))
|
||||
extract_elements(carrier_config_element, config)
|
||||
|
||||
f.write('</apns>\n')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user