formatDisplay method

List<String> formatDisplay(
  1. Address address, {
  2. bool includeCountry = true,
})

Format Address to the correct format for its country for display purposes.

Implementation

List<String> formatDisplay(Address address, {bool includeCountry = true}) {
  final addressFormat = _getAddressFormat(address.country);

  final displayFormat = addressFormat.displayFormat[_language] ??
      addressFormat.displayFormat[addressFormat.displayFormat.keys.first]!;

  final lines = <String>[];
  for (final line in displayFormat) {
    final lineBuffer = StringBuffer();

    for (final part in line) {
      if (part.text != null) {
        lineBuffer.write(part.text);
      } else {
        lineBuffer.write(_mapAddressPart(address, part.part!) ?? '');
      }
    }

    if (lineBuffer.isNotEmpty) {
      lines.add(lineBuffer.toString());
    }
  }

  if (includeCountry) {
    final countryNames = addressFormat.countryName;
    final countryName =
        countryNames[_language] ?? countryNames[countryNames.keys.first]!;

    if (addressFormat.displayCountryUppercase) {
      lines.add(countryName.toUpperCase());
    } else {
      lines.add(countryName);
    }
  }

  return lines;
}