summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun Van Nuland <tobrun.van.nuland@gmail.com>2016-10-04 11:46:48 +0200
committerTobrun <tobrun.van.nuland@gmail.com>2016-10-05 17:10:45 +0200
commit3b72c288adbb9aa689047fbb277b98ab7be6ec75 (patch)
tree6c68c65854bd9ea9b62f3457d795866cfe678601
parenta4b0e2f30c38986aedc2dc728adbd383912f4bee (diff)
downloadqtlocation-mapboxgl-3b72c288adbb9aa689047fbb277b98ab7be6ec75.tar.gz
[android] refactored exposed api on MapboxMap
fix unit tests fixup comments
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java19
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java19
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java17
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/widgets/MyLocationView.java9
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/userlocation/MyLocationTrackingModeActivity.java2
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());