diff options
author | Braden Ewing <brewin@gmail.com> | 2015-11-23 18:10:28 -0700 |
---|---|---|
committer | Braden Ewing <brewin@gmail.com> | 2015-11-25 01:15:34 -0700 |
commit | ad0b37fcfdd77d6b9b1ad1a2f6e62b539cb6e592 (patch) | |
tree | b086eed0fb5e98b720f3903cd420bafe41ea82bb | |
parent | c6edcf69b379ae33a6d6d364e676a60d0524ed72 (diff) | |
download | qtlocation-mapboxgl-ad0b37fcfdd77d6b9b1ad1a2f6e62b539cb6e592.tar.gz |
Don't double-tap zoom when quickzooming on Android
-rw-r--r-- | android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/views/MapView.java | 35 |
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 { |