diff options
author | Tobrun Van Nuland <tobrun.van.nuland@gmail.com> | 2016-10-04 11:46:48 +0200 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2016-10-05 17:10:45 +0200 |
commit | 3b72c288adbb9aa689047fbb277b98ab7be6ec75 (patch) | |
tree | 6c68c65854bd9ea9b62f3457d795866cfe678601 | |
parent | a4b0e2f30c38986aedc2dc728adbd383912f4bee (diff) | |
download | qtlocation-mapboxgl-3b72c288adbb9aa689047fbb277b98ab7be6ec75.tar.gz |
[android] refactored exposed api on MapboxMap
fix unit tests
fixup comments
5 files changed, 33 insertions, 33 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java index b8a37c7439..c6259e6e9f 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java @@ -2052,8 +2052,9 @@ public class MapView extends FrameLayout { // Called when two fingers first touch the screen @Override public boolean onRotateBegin(RotateGestureDetector detector) { - if (destroyed || !mapboxMap.getTrackingSettings().isRotateGestureCurrentlyEnabled()) + if (destroyed || !mapboxMap.getTrackingSettings().isRotateGestureCurrentlyEnabled()) { return false; + } beginTime = detector.getEventTime(); trackGestureEvent(MapboxEvent.GESTURE_ROTATION_START, detector.getFocusX(), detector.getFocusY()); @@ -2072,10 +2073,7 @@ public class MapView extends FrameLayout { // Called for rotation @Override public boolean onRotate(RotateGestureDetector detector) { - if (destroyed || !mapboxMap.getTrackingSettings().isRotateGestureCurrentlyEnabled()) - return false; - - if (dragStarted) { + if (destroyed || !mapboxMap.getTrackingSettings().isRotateGestureCurrentlyEnabled() || dragStarted) { return false; } @@ -2648,14 +2646,17 @@ public class MapView extends FrameLayout { TrackingSettings trackingSettings = mapboxMap.getTrackingSettings(); // if tracking is on, and we should dismiss tracking with gestures, and this is a scroll action, turn tracking off - if (translate && !trackingSettings.isLocationTrackingDisabled() && trackingSettings.isDismissLocationTrackingOnGesture()) + if (translate && !trackingSettings.isLocationTrackingDisabled() && trackingSettings.isDismissLocationTrackingOnGesture()) { resetLocationTrackingMode(); - // reset bearing tracking only on rotate - if (rotate && !trackingSettings.isBearingTrackingDisabled() && trackingSettings.isDismissBearingTrackingOnGesture()) + } + + // reset bearing tracking only on rotate + if (rotate && !trackingSettings.isBearingTrackingDisabled() && trackingSettings.isDismissBearingTrackingOnGesture()) { resetBearingTrackingMode(); + } } - void resetTrackingModesIfRequired(CameraPosition cameraPosition ) { + void resetTrackingModesIfRequired(CameraPosition cameraPosition) { resetTrackingModesIfRequired(cameraPosition.target != null, cameraPosition.bearing != -1); } diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index 458f14d8bc..a3368b4c78 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -435,6 +435,7 @@ public class MapboxMap { * will return the current location of the camera in flight. * <p> * Note that this will cancel location tracking mode if enabled. + * </p> * * @param update The change that should be applied to the camera. * @param durationMs The duration of the animation in milliseconds. This must be strictly @@ -460,18 +461,18 @@ public class MapboxMap { public final void easeCamera( CameraUpdate update, int durationMs, boolean easingInterpolator, final MapboxMap.CancelableCallback callback) { // dismiss tracking, moving camera is equal to a gesture - CameraPosition cameraPosition = update.getCameraPosition(this); - mapView.resetTrackingModesIfRequired(cameraPosition); - easeCameraInternal(cameraPosition, durationMs, easingInterpolator, callback); + easeCamera(update, durationMs, easingInterpolator, true, callback); } - /** - * Internal use only. - * Used by tracking actions. - */ @UiThread - public final void easeCameraInternal( - CameraPosition cameraPosition, int durationMs, boolean easingInterpolator, final MapboxMap.CancelableCallback callback) { + public final void easeCamera( + CameraUpdate update, int durationMs, boolean easingInterpolator, boolean resetTrackingMode, final MapboxMap.CancelableCallback callback) { + // dismiss tracking, moving camera is equal to a gesture + cameraPosition = update.getCameraPosition(this); + if (resetTrackingMode) { + mapView.resetTrackingModesIfRequired(cameraPosition); + } + mapView.easeTo(cameraPosition.bearing, cameraPosition.target, getDurationNano(durationMs), cameraPosition.tilt, cameraPosition.zoom, easingInterpolator, new CancelableCallback() { @Override diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java index 9564578a53..474af19853 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java @@ -181,7 +181,7 @@ public class TrackingSettings { } /** - * Is bearing tracking disabled? + * Returns if bearing tracking disabled * * @return True if bearing tracking is disabled. */ @@ -190,26 +190,23 @@ public class TrackingSettings { } /** - * Is the map currently in a state where rotate gestures are recognised? - * This requires both that the user interface has such gestures enabled, - * and that they are not currently blocked by a bearing tracking mode. + * Returns if rotate gesture are currently enabled. + * + * @return True if rotate gestures are currently enabled. */ - public boolean isRotateGestureCurrentlyEnabled() { // rotate gestures are recognised if: // The user settings are enabled AND; // EITHER bearing tracking is dismissed on gesture OR there is no bearing tracking - return uiSettings.isRotateGesturesEnabled() && (dismissBearingTrackingOnGesture || myBearingTrackingMode == MyBearingTracking.NONE); } /** - * Is the map currently in a state where scroll gestures are recognised? - * This requires both that the user interface has such gestures enabled, - * and that they are not currently blocked by a location tracking mode. + * Returns if scroll gesture are currently enabled. + * + * @return True if scroll gestures are currently enabled. */ - public boolean isScrollGestureCurrentlyEnabled() { return uiSettings.isScrollGesturesEnabled() && (dismissLocationTrackingOnGesture || myLocationTrackingMode == MyLocationTracking.TRACKING_NONE); diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java index 6ff6341fdb..14e45d7391 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java @@ -464,7 +464,7 @@ public class MyLocationView extends View { if (myLocationTrackingMode == MyLocationTracking.TRACKING_FOLLOW && location != null) { // center map directly if we have a location fix myLocationBehavior.updateLatLng(location); - mapboxMap.easeCameraInternal(CameraUpdateFactory.newLatLng(new LatLng(location)).getCameraPosition(mapboxMap), 0, false, null); + mapboxMap.easeCamera(CameraUpdateFactory.newLatLng(new LatLng(location)), 0, false /*linear interpolator*/, false /*do not disable tracking*/, null); } this.myLocationTrackingMode = myLocationTrackingMode; invalidate(); @@ -586,7 +586,7 @@ public class MyLocationView extends View { private void rotateCamera() { CameraPosition.Builder builder = new CameraPosition.Builder(); builder.bearing(currentDegree); - mapboxMap.easeCameraInternal(CameraUpdateFactory.newCameraPosition(builder.build()).getCameraPosition(mapboxMap), COMPASS_UPDATE_RATE_MS, false /*linear interpolator*/, null); + mapboxMap.easeCamera(CameraUpdateFactory.newCameraPosition(builder.build()), COMPASS_UPDATE_RATE_MS, false /*linear interpolator*/, false /*do not disable tracking*/, null); } @Override @@ -702,7 +702,7 @@ public class MyLocationView extends View { updateAccuracy(location); // ease to new camera position with a linear interpolator - mapboxMap.easeCameraInternal(CameraUpdateFactory.newCameraPosition(builder.build()).getCameraPosition(mapboxMap), (int) locationUpdateDuration, false /*linear interpolator*/, null); + mapboxMap.easeCamera(CameraUpdateFactory.newCameraPosition(builder.build()), (int) locationUpdateDuration, false /*linear interpolator*/, false /*do not disable tracking*/, null); } @Override @@ -765,8 +765,9 @@ public class MyLocationView extends View { @Override void invalidate() { - if(latLng != null) + if (latLng != null) { screenLocation = projection.toScreenLocation(latLng); + } MyLocationView.this.invalidate(); } } diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTrackingModeActivity.java b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTrackingModeActivity.java index 43b4126a72..2c923a3ba9 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTrackingModeActivity.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTrackingModeActivity.java @@ -293,7 +293,7 @@ public class MyLocationTrackingModeActivity extends AppCompatActivity } private void setCheckBoxes() { - if(mapboxMap != null && dismissBearingTrackingOnGestureItem != null) { + if (mapboxMap != null && dismissBearingTrackingOnGestureItem != null) { TrackingSettings trackingSettings = mapboxMap.getTrackingSettings(); UiSettings uiSettings = mapboxMap.getUiSettings(); dismissBearingTrackingOnGestureItem.setChecked(trackingSettings.isDismissBearingTrackingOnGesture()); |