From dee6834242708ed45dd8fdb7867b41b07566ae4b Mon Sep 17 00:00:00 2001 From: jaroslawmichalik Date: Mon, 12 Mar 2018 14:19:01 +0100 Subject: [PATCH] Added getDirectionSuggestions - to get raw response, not poyline options --- .../gmapspolyline/DirectionsApiClient.kt | 29 +++++++++++++++++-- 1 file changed, 26 insertions(+), 3 deletions(-) diff --git a/gmapspolyline/src/main/java/me/rozkmin/gmapspolyline/DirectionsApiClient.kt b/gmapspolyline/src/main/java/me/rozkmin/gmapspolyline/DirectionsApiClient.kt index dbd0f2d..b195056 100644 --- a/gmapspolyline/src/main/java/me/rozkmin/gmapspolyline/DirectionsApiClient.kt +++ b/gmapspolyline/src/main/java/me/rozkmin/gmapspolyline/DirectionsApiClient.kt @@ -53,10 +53,33 @@ class DirectionsApiClient( launch { status(STATE.LOADING, STATUS.NONE) - val data = googleMapsApi.getGeocodeDirectionsResponse(getUrl(origin, dest, options)).awaitResponse() + val response = googleMapsApi.getGeocodeDirectionsResponse(getUrl(origin, dest, options)).awaitResponse() - if (data.isSuccessful) { - polylines(polylineConverter.convert(data.body())) + if (response.isSuccessful) { + polylines(polylineConverter.convert(response.body())) + status(STATE.END, STATUS.SUCCESS) + } else { + status(STATE.END, STATUS.ERROR) + } + } + } + + fun getDirectionSuggestions( + origin: LatLng, dest: LatLng, + options: TransitOptions = TransitOptions(), + status: (STATE, STATUS) -> Unit = { _, _ -> }, + directions: (GeocodedResponse) -> Unit + ){ + status(STATE.START, STATUS.NONE) + + launch { + status(STATE.LOADING, STATUS.NONE) + val response = googleMapsApi.getGeocodeDirectionsResponse(getUrl(origin, dest, options)).awaitResponse() + + if (response.isSuccessful) { + response.body()?.apply { + directions.invoke(this) + } status(STATE.END, STATUS.SUCCESS) } else { status(STATE.END, STATUS.ERROR)