From 5e024841e1627a525b3c07ee9f1631b93fa42c6d Mon Sep 17 00:00:00 2001 From: Pedro Belo Date: Wed, 13 Jul 2016 08:43:13 -0700 Subject: [PATCH] take prop to hide the my location button in Android (#382) this button is enabled by default when showsUserLocation is true. useful if you want to implement that yourself in React Native, for instance --- .../java/com/airbnb/android/react/maps/AirMapManager.java | 5 +++++ .../java/com/airbnb/android/react/maps/AirMapView.java | 6 ++++++ components/MapView.js | 8 ++++++++ 3 files changed, 19 insertions(+) diff --git a/android/lib/src/main/java/com/airbnb/android/react/maps/AirMapManager.java b/android/lib/src/main/java/com/airbnb/android/react/maps/AirMapManager.java index e783c3175..615351a0a 100644 --- a/android/lib/src/main/java/com/airbnb/android/react/maps/AirMapManager.java +++ b/android/lib/src/main/java/com/airbnb/android/react/maps/AirMapManager.java @@ -97,6 +97,11 @@ public void setShowsUserLocation(AirMapView view, boolean showUserLocation) { view.setShowsUserLocation(showUserLocation); } + @ReactProp(name = "showsMyLocationButton", defaultBoolean = true) + public void setShowsMyLocationButton(AirMapView view, boolean showMyLocationButton) { + view.setShowsMyLocationButton(showMyLocationButton); + } + @ReactProp(name = "toolbarEnabled", defaultBoolean = true) public void setToolbarEnabled(AirMapView view, boolean toolbarEnabled) { view.setToolbarEnabled(toolbarEnabled); diff --git a/android/lib/src/main/java/com/airbnb/android/react/maps/AirMapView.java b/android/lib/src/main/java/com/airbnb/android/react/maps/AirMapView.java index e2b5606cd..57af2c787 100644 --- a/android/lib/src/main/java/com/airbnb/android/react/maps/AirMapView.java +++ b/android/lib/src/main/java/com/airbnb/android/react/maps/AirMapView.java @@ -321,6 +321,12 @@ public void setShowsUserLocation(boolean showUserLocation) { } } + public void setShowsMyLocationButton(boolean showMyLocationButton) { + if (hasPermissions()) { + map.getUiSettings().setMyLocationButtonEnabled(showMyLocationButton); + } + } + public void setToolbarEnabled(boolean toolbarEnabled) { if (hasPermissions()) { map.getUiSettings().setMapToolbarEnabled(toolbarEnabled); diff --git a/components/MapView.js b/components/MapView.js index 997db1e90..1214412b4 100644 --- a/components/MapView.js +++ b/components/MapView.js @@ -51,6 +51,14 @@ var MapView = React.createClass({ */ showsUserLocation: PropTypes.bool, + /** + * If `false` hide the button to move map to the current user's location. + * Default value is `true`. + * + * @platform android + */ + showsMyLocationButton: PropTypes.bool, + /** * If `true` the map will focus on the user's location. This only works if * `showsUserLocation` is true and the user has shared their location.