summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2015-11-25 20:40:38 +0100
committerTobrun <tobrun.van.nuland@gmail.com>2015-11-25 20:40:38 +0100
commit99dd6140fd9e1fddb64d710d6177f0278cb7d309 (patch)
tree45d7b4d9a6101e6a2307f780e679f8a6c255130f
parent3f786c717166df45409f631963a141f39a670af5 (diff)
parentad0b37fcfdd77d6b9b1ad1a2f6e62b539cb6e592 (diff)
downloadqtlocation-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.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 {