From efaeeca5836020b5b28a2e369656e8071f6a4a36 Mon Sep 17 00:00:00 2001 From: bsudekum Date: Sat, 31 Oct 2015 10:19:55 -0700 Subject: [PATCH] Fix tracking props --- android/build.gradle | 2 +- android/example.js | 3 ++- .../ReactNativeMapboxGLManager.java | 21 +++++++------------ index.android.js | 10 +++++++-- 4 files changed, 19 insertions(+), 17 deletions(-) diff --git a/android/build.gradle b/android/build.gradle index 223cc32..a00f7ee 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -31,7 +31,7 @@ repositories { dependencies { compile 'com.facebook.react:react-native:0.11.+' - compile('com.mapbox.mapboxsdk:mapbox-android-sdk:2.1.0@aar') { + compile('com.mapbox.mapboxsdk:mapbox-android-sdk:2.2.0@aar') { transitive = true } } diff --git a/android/example.js b/android/example.js index 9e97f3b..8d70502 100644 --- a/android/example.js +++ b/android/example.js @@ -62,8 +62,9 @@ var MapExample = React.createClass({ style={styles.map} showsUserLocation={true} styleUrl={'asset://styles/streets-v8.json'} + UserLocationTrackingMode={'FOLLOW'} zoomEnabled={true} - zoomLevel={12} + zoomLevel={10} /> ); diff --git a/android/src/main/java/com/mapbox/reactnativemapboxgl/ReactNativeMapboxGLManager.java b/android/src/main/java/com/mapbox/reactnativemapboxgl/ReactNativeMapboxGLManager.java index 8b9c3b0..61e309f 100644 --- a/android/src/main/java/com/mapbox/reactnativemapboxgl/ReactNativeMapboxGLManager.java +++ b/android/src/main/java/com/mapbox/reactnativemapboxgl/ReactNativeMapboxGLManager.java @@ -13,11 +13,14 @@ import com.facebook.react.uimanager.ThemedReactContext; import com.facebook.react.uimanager.UIProp; import com.mapbox.mapboxsdk.annotations.MarkerOptions; import com.mapbox.mapboxsdk.annotations.PolygonOptions; +import com.mapbox.mapboxsdk.constants.MyLocationTracking; import com.mapbox.mapboxsdk.annotations.PolylineOptions; import com.mapbox.mapboxsdk.views.MapView; import com.mapbox.mapboxsdk.geometry.LatLng; import com.facebook.react.uimanager.events.RCTEventEmitter; +import java.util.Map; + public class ReactNativeMapboxGLManager extends SimpleViewManager { public static final String REACT_CLASS = "RCTMapbox"; @@ -144,7 +147,7 @@ public class ReactNativeMapboxGLManager extends SimpleViewManager { view.addOnMapChangedListener(new MapView.OnMapChangedListener() { @Override public void onMapChanged(int change) { - if (change == MapView.REGION_DID_CHANGE) { + if (change == MapView.REGION_DID_CHANGE || change == MapView.REGION_DID_CHANGE_ANIMATED) { WritableMap event = Arguments.createMap(); WritableMap location = Arguments.createMap(); location.putDouble("latitude", view.getCenterCoordinate().getLatitude()); @@ -172,25 +175,17 @@ public class ReactNativeMapboxGLManager extends SimpleViewManager { if (props.hasKey(PROP_STYLE_URL)) { view.setStyleUrl(props.getString(PROP_STYLE_URL)); } - - /* - - This was removed in v2.1.0 and will be added back in the next release - if (props.hasKey(PROP_USER_TRACKING_MODE)) { String mode = props.getString(PROP_USER_TRACKING_MODE); if (mode.equals("NONE")) { - view.setUserLocationTrackingMode(MapView.UserLocationTrackingMode.NONE); + view.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE); } else if (mode.equals("FOLLOW")) { - view.setUserLocationTrackingMode(MapView.UserLocationTrackingMode.FOLLOW); - } else if (mode.equals("FOLLOW_BEARING")) { - view.setUserLocationTrackingMode(MapView.UserLocationTrackingMode.FOLLOW_BEARING); + view.setMyLocationTrackingMode(MyLocationTracking.TRACKING_FOLLOW); } else { - view.setUserLocationTrackingMode(MapView.UserLocationTrackingMode.NONE); + view.setMyLocationTrackingMode(MyLocationTracking.TRACKING_NONE); Log.w("Error", "Tracking mode not found. Setting to NONE."); } - }*/ - + } if (props.hasKey(PROP_ZOOM_ENABLED)) { view.setZoomEnabled(props.getBoolean(PROP_ZOOM_ENABLED, true)); } diff --git a/index.android.js b/index.android.js index e5c2003..7c52c82 100644 --- a/index.android.js +++ b/index.android.js @@ -26,10 +26,16 @@ var ReactMapView = requireNativeComponent('RCTMapbox', { scrollEnabled: React.PropTypes.bool, showsUserLocation: React.PropTypes.bool, styleUrl: React.PropTypes.string, - UserLocationTrackingMode: React.PropTypes.oneOf(['NONE', 'FOLLOW', 'FOLLOW_BEARING']), + UserLocationTrackingMode: React.PropTypes.oneOf(['NONE', 'FOLLOW']), zoomEnabled: React.PropTypes.bool, zoomLevel: React.PropTypes.number, - onRegionChange: React.PropTypes.func + onRegionChange: React.PropTypes.func, + // Fix for https://github.com/mapbox/react-native-mapbox-gl/issues/118 + scaleY: React.PropTypes.number, + scaleX: React.PropTypes.number, + translateY: React.PropTypes.number, + translateX: React.PropTypes.number, + rotation: React.PropTypes.number }, defaultProps() { return {