suggestAddresses method

  1. @override
Future<List<AddressSuggestion>> suggestAddresses(
  1. AddressAutocompleteOptions options
)
override

Implementation

@override
Future<List<AddressSuggestion>> suggestAddresses(
  AddressAutocompleteOptions options,
) async {
  final List<Object?> rawSuggestions;
  try {
    rawSuggestions = await methodChannel.invokeMethod<List<Object?>>(
          'suggestAddresses',
          options.toMap(),
        ) ??
        <Object?>[];
  } on MissingPluginException {
    throw UnsupportedError(
      'native_address_autocomplete only supports Android and iOS.',
    );
  } on PlatformException catch (error) {
    throw NativeAddressAutocompleteException(
      error.message ?? 'Address autocomplete failed.',
      code: error.code,
    );
  }

  return rawSuggestions
      .whereType<Map<Object?, Object?>>()
      .map(AddressSuggestion.fromMap)
      .where((AddressSuggestion suggestion) => suggestion.fullText.isNotEmpty)
      .toList(growable: false);
}