Skip to content

Commit

Permalink
fix: Make all listeners null by default
Browse files Browse the repository at this point in the history
Prior to this change, all click listeners and onMapLoaded were set to an empty lambda by default. This would cause issues where for example the map is clickable by default without doing anything. When talkback is on, it reads "double click to activate".

This change fixes that by making all listeners null by default.
  • Loading branch information
romainpiel committed May 23, 2023
1 parent a745600 commit 7721994
Show file tree
Hide file tree
Showing 3 changed files with 18 additions and 18 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -80,12 +80,12 @@ public fun GoogleMap(
locationSource: LocationSource? = null,
uiSettings: MapUiSettings = DefaultMapUiSettings,
indoorStateChangeListener: IndoorStateChangeListener = DefaultIndoorStateChangeListener,
onMapClick: (LatLng) -> Unit = {},
onMapLongClick: (LatLng) -> Unit = {},
onMapLoaded: () -> Unit = {},
onMyLocationButtonClick: () -> Boolean = { false },
onMyLocationClick: (Location) -> Unit = {},
onPOIClick: (PointOfInterest) -> Unit = {},
onMapClick: ((LatLng) -> Unit)? = null,
onMapLongClick: ((LatLng) -> Unit)? = null,
onMapLoaded: (() -> Unit)? = null,
onMyLocationButtonClick: (() -> Boolean)? = null,
onMyLocationClick: ((Location) -> Unit)? = null,
onPOIClick: ((PointOfInterest) -> Unit)? = null,
contentPadding: PaddingValues = NoPadding,
content: (@Composable @GoogleMapComposable () -> Unit)? = null,
) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,10 +49,10 @@ public interface IndoorStateChangeListener {
*/
internal class MapClickListeners {
var indoorStateChangeListener: IndoorStateChangeListener by mutableStateOf(DefaultIndoorStateChangeListener)
var onMapClick: (LatLng) -> Unit by mutableStateOf({})
var onMapLongClick: (LatLng) -> Unit by mutableStateOf({})
var onMapLoaded: () -> Unit by mutableStateOf({})
var onMyLocationButtonClick: () -> Boolean by mutableStateOf({ false })
var onMyLocationClick: (Location) -> Unit by mutableStateOf({})
var onPOIClick: (PointOfInterest) -> Unit by mutableStateOf({})
var onMapClick: ((LatLng) -> Unit)? by mutableStateOf(null)
var onMapLongClick: ((LatLng) -> Unit)? by mutableStateOf(null)
var onMapLoaded: (() -> Unit)? by mutableStateOf(null)
var onMyLocationButtonClick: (() -> Boolean)? by mutableStateOf(null)
var onMyLocationClick: ((Location) -> Unit)? by mutableStateOf(null)
var onPOIClick: ((PointOfInterest) -> Unit)? by mutableStateOf(null)
}
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,12 @@ internal class MapPropertiesNode(
map.setOnCameraMoveListener {
cameraPositionState.rawPosition = map.cameraPosition
}
map.setOnMapClickListener { clickListeners.onMapClick(it) }
map.setOnMapLongClickListener { clickListeners.onMapLongClick(it) }
map.setOnMapLoadedCallback { clickListeners.onMapLoaded() }
map.setOnMyLocationButtonClickListener { clickListeners.onMyLocationButtonClick() }
map.setOnMyLocationClickListener { clickListeners.onMyLocationClick(it) }
map.setOnPoiClickListener { clickListeners.onPOIClick(it) }
map.setOnMapClickListener(clickListeners.onMapClick)
map.setOnMapLongClickListener(clickListeners.onMapLongClick)
map.setOnMapLoadedCallback(clickListeners.onMapLoaded)
map.setOnMyLocationButtonClickListener(clickListeners.onMyLocationButtonClick)
map.setOnMyLocationClickListener(clickListeners.onMyLocationClick)
map.setOnPoiClickListener(clickListeners.onPOIClick)
map.setOnIndoorStateChangeListener(object : GoogleMap.OnIndoorStateChangeListener {
override fun onIndoorBuildingFocused() {
clickListeners.indoorStateChangeListener.onIndoorBuildingFocused()
Expand Down

0 comments on commit 7721994

Please sign in to comment.