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()
|
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():
|
def main():
|
||||||
args = parse_args()
|
args = parse_args()
|
||||||
|
|
||||||
@@ -50,22 +144,6 @@ def main():
|
|||||||
apns_folder = args.apns
|
apns_folder = args.apns
|
||||||
vendor_folder = args.vendor
|
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_id_list = CarrierIdList()
|
||||||
carrier_attribute_map = {}
|
carrier_attribute_map = {}
|
||||||
with open(os.path.join(os.path.abspath(os.path.dirname(__file__)), 'carrier_list.pb'), 'rb') as pb:
|
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),
|
getattr(entry.carrier_id[0], field),
|
||||||
)
|
)
|
||||||
for config in setting.configs.config:
|
for config in setting.configs.config:
|
||||||
if config.key in unwanted_configs:
|
extract_elements(carrier_config_element, config)
|
||||||
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))
|
|
||||||
|
|
||||||
f.write('</apns>\n')
|
f.write('</apns>\n')
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user