Skip to content

Commit 6b55894

Browse files
committed
Completely remove calls for Place Details API
Signed-off-by: Rafael Chagas <chagas@gmail.com>
1 parent 5979a44 commit 6b55894

File tree

4 files changed

+23
-37
lines changed

4 files changed

+23
-37
lines changed

library/src/main/java/com/rtchagas/pingplacepicker/model/SimplePlace.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,5 +17,7 @@ data class SimplePlace(
1717
@Json(name = "types")
1818
val types: List<String> = emptyList(),
1919
@Json(name = "vicinity")
20-
val vicinity: String = ""
20+
val vicinity: String = "",
21+
@Json(name = "formatted_address")
22+
val formattedAddress: String = ""
2123
)

library/src/main/java/com/rtchagas/pingplacepicker/repository/googlemaps/NearbyPlace.kt renamed to library/src/main/java/com/rtchagas/pingplacepicker/repository/googlemaps/CustomPlace.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import com.google.android.libraries.places.api.model.*
77
import kotlinx.android.parcel.Parcelize
88

99
@Parcelize
10-
class NearbyPlace(
10+
class CustomPlace(
1111
var placeId: String,
1212
var placeName: String,
1313
var placePhotos: MutableList<PhotoMetadata>,

library/src/main/java/com/rtchagas/pingplacepicker/repository/googlemaps/GoogleMapsRepository.kt

Lines changed: 11 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import com.google.android.libraries.places.api.model.PhotoMetadata
77
import com.google.android.libraries.places.api.model.Place
88
import com.google.android.libraries.places.api.model.PlaceLikelihood
99
import com.google.android.libraries.places.api.net.FetchPhotoRequest
10-
import com.google.android.libraries.places.api.net.FetchPlaceRequest
1110
import com.google.android.libraries.places.api.net.FindCurrentPlaceRequest
1211
import com.google.android.libraries.places.api.net.PlacesClient
1312
import 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
/**

library/src/main/java/com/rtchagas/pingplacepicker/ui/PlaceConfirmDialogFragment.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import android.view.View
1111
import android.view.ViewGroup
1212
import androidx.appcompat.app.AlertDialog
1313
import androidx.appcompat.app.AppCompatDialogFragment
14+
import androidx.core.view.isVisible
1415
import androidx.lifecycle.Observer
1516
import androidx.transition.TransitionManager
1617
import com.google.android.libraries.places.api.model.Place
@@ -73,7 +74,7 @@ class PlaceConfirmDialogFragment : AppCompatDialogFragment(), PingKoinComponent
7374
val builder = AlertDialog.Builder(activity!!)
7475

7576
builder.setTitle(R.string.picker_place_confirm)
76-
.setView(getContentView(activity!!))
77+
.setView(getContentView(requireContext()))
7778
.setPositiveButton(android.R.string.ok) { _, _ ->
7879
confirmListener?.onPlaceConfirmed(place)
7980
dismiss()
@@ -92,7 +93,12 @@ class PlaceConfirmDialogFragment : AppCompatDialogFragment(), PingKoinComponent
9293
val content = LayoutInflater.from(context)
9394
.inflate(R.layout.fragment_dialog_place_confirm, null)
9495

95-
content.tvPlaceName.text = place.name
96+
if (place.name.isNullOrEmpty()) {
97+
content.tvPlaceName.isVisible = false
98+
} else {
99+
content.tvPlaceName.text = place.name
100+
}
101+
96102
content.tvPlaceAddress.text = place.address
97103

98104
fetchPlaceMap(content)

0 commit comments

Comments
 (0)