downloadAddress method
Future<List>
downloadAddress(
- dynamic searchTxt,
- dynamic context,
- dynamic haveNext
)
Implementation
Future<List> downloadAddress(searchTxt, context, haveNext) async {
myLogAll('downloadAddress');
var searchType = 'SearchTerm';
List tmpListAddress = [];
bool needFindUS = false;
if (haveNext ?? false) {
searchType = 'LastId';
} else {
needFindUS = true;
}
List tmpListAddress1 =
await downloadAddressDetail('$searchType=$searchTxt', context);
if (tmpListAddress1.isNotEmpty) {
for (int i = 0; i < tmpListAddress1.length; i++) {
tmpListAddress.add(tmpListAddress1[i]);
}
}
if (needFindUS) {
List tmpListAddress2 = await downloadAddressDetail(
'$searchType=$searchTxt&Country=US', context);
if (tmpListAddress2.isNotEmpty) {
for (int i = 0; i < tmpListAddress2.length; i++) {
tmpListAddress.add(tmpListAddress2[i]);
}
}
}
List<dynamic> result = [];
//result.add('');
for (int i = 0; i < tmpListAddress.length; i++) {
dynamic element = tmpListAddress[i];
if (element["Next"] == "Find") {
List resultSub = await downloadAddress(element["Id"], context, true);
for (int i = 0; i < resultSub.length; i++) {
result.add(resultSub[i]);
}
} else {
var address = element["Text"] + " " + element["Description"];
result.add(address);
}
}
return result;
}