summaryrefslogtreecommitdiff
path: root/android
diff options
context:
space:
mode:
authorBraden Ewing <brewin@gmail.com>2015-11-23 18:10:28 -0700
committerBraden Ewing <brewin@gmail.com>2015-11-25 01:15:34 -0700
commitad0b37fcfdd77d6b9b1ad1a2f6e62b539cb6e592 (patch)
treeb086eed0fb5e98b720f3903cd420bafe41ea82bb /android
parentc6edcf69b379ae33a6d6d364e676a60d0524ed72 (diff)
downloadqtlocation-mapboxgl-ad0b37fcfdd77d6b9b1ad1a2f6e62b539cb6e592.tar.gz
Don't double-tap zoom when quickzooming on Android
Diffstat (limited to 'android')
-rw-r--r--android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java35
1 files changed, 25 insertions, 10 deletions
diff --git a/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java
index 8844184142..c1b720cf27 100644
--- a/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java
+++ b/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java
@@ -180,6 +180,7 @@ public final class MapView extends FrameLayout {
private RotateGestureDetector mRotateGestureDetector;
private boolean mTwoTap = false;
private boolean mZoomStarted = false;
+ private boolean mQuickZoom = false;
// Shows zoom buttons
private ZoomButtonsController mZoomButtonsController;
@@ -2369,20 +2370,34 @@ public final class MapView extends FrameLayout {
// Called for double taps
@Override
- public boolean onDoubleTap(MotionEvent e) {
+ public boolean onDoubleTapEvent(MotionEvent e) {
if (!mZoomEnabled) {
return false;
}
- // Single finger double tap
- // Zoom in
- if (mUserLocationView.getMyLocationTrackingMode() == MyLocationTracking.TRACKING_NONE) {
- // Zoom in on gesture
- zoom(true, e.getX(), e.getY());
- } else {
- // Zoom in on center map
- zoom(true, getWidth() / 2, getHeight() / 2);
+ switch (e.getAction()) {
+ case MotionEvent.ACTION_DOWN:
+ mQuickZoom = false;
+ break;
+ case MotionEvent.ACTION_MOVE:
+ mQuickZoom = true;
+ break;
+ case MotionEvent.ACTION_UP:
+ if (mQuickZoom) {
+ break;
+ }
+
+ // Single finger double tap
+ if (mUserLocationView.getMyLocationTrackingMode() == MyLocationTracking.TRACKING_NONE) {
+ // Zoom in on gesture
+ zoom(true, e.getX(), e.getY());
+ } else {
+ // Zoom in on center map
+ zoom(true, getWidth() / 2, getHeight() / 2);
+ }
+ break;
}
+
return true;
}
@@ -2596,7 +2611,7 @@ public final class MapView extends FrameLayout {
mNativeMapView.cancelTransitions();
// Scale the map
- if (mUserLocationView.getMyLocationTrackingMode() == MyLocationTracking.TRACKING_NONE) {
+ if (!mQuickZoom && mUserLocationView.getMyLocationTrackingMode() == MyLocationTracking.TRACKING_NONE) {
// around gesture
mNativeMapView.scaleBy(detector.getScaleFactor(), detector.getFocusX() / mScreenDensity, detector.getFocusY() / mScreenDensity);
} else {