@@ -7,7 +7,6 @@ import com.google.android.libraries.places.api.model.PhotoMetadata
77import com.google.android.libraries.places.api.model.Place
88import com.google.android.libraries.places.api.model.PlaceLikelihood
99import com.google.android.libraries.places.api.net.FetchPhotoRequest
10- import com.google.android.libraries.places.api.net.FetchPlaceRequest
1110import com.google.android.libraries.places.api.net.FindCurrentPlaceRequest
1211import com.google.android.libraries.places.api.net.PlacesClient
1312import com.rtchagas.pingplacepicker.Config
@@ -66,9 +65,9 @@ class GoogleMapsRepository constructor(
6665
6766 return googleMapsAPI.searchNearby(locationParam, PingPlacePicker .mapsApiKey)
6867 .map { searchResult ->
69- val placeList = mutableListOf<NearbyPlace >()
68+ val placeList = mutableListOf<CustomPlace >()
7069 for (simplePlace in searchResult.results) {
71- placeList.add(mapToNearbyPlace (simplePlace))
70+ placeList.add(mapToCustomPlace (simplePlace))
7271 }
7372 placeList
7473 }
@@ -110,39 +109,14 @@ class GoogleMapsRepository constructor(
110109 val paramLocation = " ${location.latitude} ,${location.longitude} "
111110
112111 return googleMapsAPI.findByLocation(paramLocation, PingPlacePicker .mapsApiKey)
113- .flatMap { result: SearchResult ->
112+ .map { result: SearchResult ->
114113 if ((" OK" == result.status) && result.results.isNotEmpty()) {
115- return @flatMap getPlaceById (result.results[0 ].placeId )
114+ return @map mapToCustomPlace (result.results[0 ])
116115 }
117- return @flatMap Single .just(
118- PlaceFromCoordinates (
119- location.latitude,
120- location.longitude
121- )
122- )
116+ return @map PlaceFromCoordinates (location.latitude, location.longitude)
123117 }
124118 }
125119
126- /* *
127- * Billed according to
128- * https://developers.google.com/places/android-sdk/usage-and-billing#places-details
129- */
130- private fun getPlaceById (placeId : String ): Single <Place > {
131-
132- // Create the request
133- val request = FetchPlaceRequest .builder(placeId, getPlaceFields()).build()
134-
135- return Single .create { emitter ->
136- googleClient.fetchPlace(request)
137- .addOnSuccessListener {
138- emitter.onSuccess(it.place)
139- }
140- .addOnFailureListener {
141- emitter.tryOnError(it)
142- }
143- }
144- }
145-
146120 /* *
147121 * These fields are not charged by Google.
148122 * https://developers.google.com/places/android-sdk/usage-and-billing#basic-data
@@ -159,7 +133,7 @@ class GoogleMapsRepository constructor(
159133 )
160134 }
161135
162- private fun mapToNearbyPlace (place : SimplePlace ): NearbyPlace {
136+ private fun mapToCustomPlace (place : SimplePlace ): CustomPlace {
163137
164138 val photoList = mutableListOf<PhotoMetadata >()
165139 place.photos.forEach {
@@ -180,7 +154,11 @@ class GoogleMapsRepository constructor(
180154
181155 val latLng = LatLng (place.geometry.location.lat, place.geometry.location.lng)
182156
183- return NearbyPlace (place.placeId, place.name, photoList, place.vicinity, typeList, latLng)
157+ val address =
158+ if (place.formattedAddress.isNotEmpty()) place.formattedAddress
159+ else place.vicinity
160+
161+ return CustomPlace (place.placeId, place.name, photoList, address, typeList, latLng)
184162 }
185163
186164 /* *
0 commit comments