diff options
author | Larry Geromegnace <larry.geromegnace@mappy.com> | 2016-02-25 14:24:17 +0100 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2016-04-23 07:09:51 +0200 |
commit | b3e340ca112ed8e349ce4081b7ff375ea9ee44e1 (patch) | |
tree | 6a10f602822f07f321c9ed9a0a5d15ccb287fdc1 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java | |
parent | 668405e61fbc000b88308e22ffaf5d38b0578df4 (diff) | |
download | qtlocation-mapboxgl-b3e340ca112ed8e349ce4081b7ff375ea9ee44e1.tar.gz |
[android] #4396 - UserLocationView improvements
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/TrackingSettings.java | 60 |
1 files changed, 47 insertions, 13 deletions
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 de715f5c81..af9e10602f 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 @@ -14,7 +14,8 @@ public class TrackingSettings { private MapView mapView; private UiSettings uiSettings; - private boolean dismissTrackingOnGesture = true; + private boolean dismissLocationTrackingOnGesture = true; + private boolean dismissBearingTrackingOnGesture = true; @MyLocationTracking.Mode private int mMyLocationTrackingMode; @@ -44,7 +45,7 @@ public class TrackingSettings { public void setMyLocationTrackingMode(@MyLocationTracking.Mode int myLocationTrackingMode) { mMyLocationTrackingMode = myLocationTrackingMode; mapView.setMyLocationTrackingMode(myLocationTrackingMode); - validateGesturesForTrackingModes(); + validateGesturesForLocationTrackingMode(); } /** @@ -79,6 +80,7 @@ public class TrackingSettings { public void setMyBearingTrackingMode(@MyBearingTracking.Mode int myBearingTrackingMode) { mMyBearingTrackingMode = myBearingTrackingMode; mapView.setMyBearingTrackingMode(myBearingTrackingMode); + validateGesturesForBearingTrackingMode(); } /** @@ -89,7 +91,7 @@ public class TrackingSettings { * @see MyBearingTracking */ @UiThread - @MyLocationTracking.Mode + @MyBearingTracking.Mode public int getMyBearingTrackingMode() { return mMyBearingTrackingMode; } @@ -100,7 +102,7 @@ public class TrackingSettings { * @return True to indicate the tracking modes will be dismissed. */ public boolean isDismissTrackingOnGesture() { - return dismissTrackingOnGesture; + return dismissLocationTrackingOnGesture && dismissBearingTrackingOnGesture; } /** @@ -109,35 +111,67 @@ public class TrackingSettings { * @param dismissTrackingOnGesture True to dismiss the tracking modes. */ public void setDismissTrackingOnGesture(boolean dismissTrackingOnGesture) { - this.dismissTrackingOnGesture = dismissTrackingOnGesture; + dismissLocationTrackingOnGesture = dismissTrackingOnGesture; + dismissBearingTrackingOnGesture = dismissTrackingOnGesture; validateGesturesForTrackingModes(); } private void validateGesturesForTrackingModes() { - if (!dismissTrackingOnGesture) { - int myLocationTrackingMode = getMyLocationTrackingMode(); - int myBearingTrackingMode = getMyBearingTrackingMode(); + validateGesturesForBearingTrackingMode(); + validateGesturesForLocationTrackingMode(); + } + + private void validateGesturesForLocationTrackingMode() { + int myLocationTrackingMode = getMyLocationTrackingMode(); - // Enable/disable gestures based on tracking mode + if (!dismissLocationTrackingOnGesture) { if (myLocationTrackingMode == MyLocationTracking.TRACKING_NONE) { uiSettings.setScrollGesturesEnabled(true); - uiSettings.setRotateGesturesEnabled(true); } else { uiSettings.setScrollGesturesEnabled(false); - uiSettings.setRotateGesturesEnabled((myBearingTrackingMode == MyBearingTracking.NONE)); } - }else{ + } else { uiSettings.setScrollGesturesEnabled(true); + } + } + + private void validateGesturesForBearingTrackingMode() { + int myBearingTrackingMode = getMyBearingTrackingMode(); + if (!dismissBearingTrackingOnGesture) { + if (myBearingTrackingMode == MyBearingTracking.NONE) { + uiSettings.setRotateGesturesEnabled(true); + } else { + uiSettings.setRotateGesturesEnabled(false); + } + } else { uiSettings.setRotateGesturesEnabled(true); } } + public void setDismissLocationTrackingOnGesture(boolean dismissLocationTrackingOnGesture) { + this.dismissLocationTrackingOnGesture = dismissLocationTrackingOnGesture; + validateGesturesForLocationTrackingMode(); + } + + public boolean isDismissLocationTrackingOnGesture() { + return dismissLocationTrackingOnGesture; + } + + public void setDismissBearingTrackingOnGesture(boolean dismissBearingTrackingOnGesture) { + this.dismissBearingTrackingOnGesture = dismissBearingTrackingOnGesture; + validateGesturesForBearingTrackingMode(); + } + + public boolean isDismissBearingTrackingOnGesture() { + return dismissBearingTrackingOnGesture; + } + /** * Return if location tracking is disabled * * @return True if location tracking is disabled. */ - public boolean isLocationTrackingDisabled() { + public boolean isLocationTrackingDisabled(){ return mMyLocationTrackingMode == MyLocationTracking.TRACKING_NONE; } } |