diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2015-11-25 20:40:38 +0100 |
---|---|---|
committer | Tobrun <tobrun.van.nuland@gmail.com> | 2015-11-25 20:40:38 +0100 |
commit | 99dd6140fd9e1fddb64d710d6177f0278cb7d309 (patch) | |
tree | 45d7b4d9a6101e6a2307f780e679f8a6c255130f | |
parent | 3f786c717166df45409f631963a141f39a670af5 (diff) | |
parent | ad0b37fcfdd77d6b9b1ad1a2f6e62b539cb6e592 (diff) | |
download | qtlocation-mapboxgl-99dd6140fd9e1fddb64d710d6177f0278cb7d309.tar.gz |
Merge branch 'android-quickzoom-fix' of git://github.com/brewin/mapbox-gl-native into brewin-android-quickzoom-fix
-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 { |