typedAddress property
List
typedAddress
Implementation
List<dynamic> get typedAddress {
List<String> addressTypes = [
'HOME',
'WORK',
'POSTAL',
'DOM',
];
List<String> addresses;
List<String> types = [];
List<dynamic> result = [];
String _adr = '';
addresses = getWordsOfPrefix("ADR");
for (String adr in addresses) {
try {
if (version == "2.1" || version == "3.0") {
_adr = RegExp(r'(?<=(;|:);).+$').firstMatch(adr)?.group(0) ?? '';
} else if (version == "4.0") {
_adr = RegExp(r'(?<=LABEL=").+(?=":;)').firstMatch(adr)?.group(0) ?? '';
}
} catch (e) {
_adr = '';
}
if (_adr.startsWith(r';')) {
//remove leading semicolon
_adr = _adr.substring(1);
}
for (String type in addressTypes) {
if (adr.toUpperCase().contains(type)) {
types.add(type);
}
}
result.add([
_adr.split(';'),
types
]); //Add splitted adress ( home;street;city -> [home, street, city]) along with its type
_adr = '';
types = [];
}
return result; // in this format: [[[adr_1_params], [adr_1_types]], [[adr_2_params], [adr_2_types]]]
}