doSearch method

Stream<_SearchState> doSearch(
  1. String value,
  2. GoogleMapsPlaces places
)

Implementation

Stream<_SearchState> doSearch(String value, GoogleMapsPlaces places) async* {
  yield _SearchState(true, null, value);

  assert(() {
    debugPrint(
        '[flutter_google_places_hoc081098] input=$value location=${widget.location} origin=${widget.origin}');
    return true;
  }());

  try {
    final res = await places.autocomplete(
      value,
      offset: widget.offset,
      location: widget.location,
      radius: widget.radius,
      language: widget.language,
      sessionToken: widget.sessionToken,
      types: widget.types ?? const [],
      components: widget.components ?? const [],
      strictbounds: widget.strictbounds ?? false,
      region: widget.region,
      origin: widget.origin,
    );

    if (res.errorMessage?.isNotEmpty == true ||
        res.status == 'REQUEST_DENIED') {
      assert(() {
        debugPrint('[flutter_google_places_hoc081098] REQUEST_DENIED $res');
        return true;
      }());
      onResponseError(res);
    }

    yield _SearchState(
      false,
      PlacesAutocompleteResponse(
        status: res.status,
        errorMessage: res.errorMessage,
        predictions: _sorted(res.predictions),
      ),
      value,
    );
  } catch (e, s) {
    assert(() {
      debugPrint('[flutter_google_places_hoc081098] ERROR $e $s');
      return true;
    }());
    yield _SearchState(false, null, value);
  }
}