downloadAddress method

Future<List> downloadAddress(
  1. dynamic searchTxt,
  2. dynamic context,
  3. 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;
}