From 0bdaa226666c1a7c2a3390c4351c180bbb8727f1 Mon Sep 17 00:00:00 2001 From: Michael Bestas Date: Fri, 19 Aug 2022 14:31:45 +0300 Subject: [PATCH] carriersettings-extractor: Move element extraction to separate function Prepare for bundle support. Change-Id: I2f9fe500beee1130b95e526ebd4a84d6fd3f4766 --- .../carriersettings_extractor.py | 185 +++++++++--------- 1 file changed, 95 insertions(+), 90 deletions(-) diff --git a/carriersettings-extractor/carriersettings_extractor.py b/carriersettings-extractor/carriersettings_extractor.py index af864e7..3445b86 100755 --- a/carriersettings-extractor/carriersettings_extractor.py +++ b/carriersettings-extractor/carriersettings_extractor.py @@ -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('\n')