diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2017-01-11 17:31:51 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-01-11 17:31:51 +0100 |
commit | 4ce8d3e4e313fd436d2c8bc233d44ab90d23c64d (patch) | |
tree | d3bd5f355acdb943cefc209da22a58c0fed7a6f5 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java | |
parent | ae463564f82bd876a6ef73acfac955eb22666fc0 (diff) | |
download | qtlocation-mapboxgl-4ce8d3e4e313fd436d2c8bc233d44ab90d23c64d.tar.gz |
[android] - avoid triggering a fling gesture after a scale gesture. (#7675)
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java index 053aa72fdf..bf7c1918e2 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java @@ -49,6 +49,7 @@ final class MapGestureDetector { private boolean dragStarted = false; private boolean quickZoom = false; private boolean scrollInProgress = false; + private boolean scaleGestureOccurred = false; MapGestureDetector(Context context, Transform transform, Projection projection, UiSettings uiSettings, TrackingSettings trackingSettings, AnnotationManager annotationManager) { @@ -111,7 +112,8 @@ final class MapGestureDetector { // Handle two finger tap switch (event.getActionMasked()) { case MotionEvent.ACTION_DOWN: - // First pointer down + // First pointer down, reset scaleGestureOccurred, used to avoid triggering a fling after a scale gesture #7666 + scaleGestureOccurred = false; transform.setGestureInProgress(true); break; @@ -294,7 +296,9 @@ final class MapGestureDetector { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { - if (!trackingSettings.isScrollGestureCurrentlyEnabled()) { + if ((!trackingSettings.isScrollGestureCurrentlyEnabled()) || scaleGestureOccurred) { + // don't allow a fling is scroll is disabled + // and ignore when a scale gesture has occurred return false; } @@ -368,6 +372,7 @@ final class MapGestureDetector { return false; } + scaleGestureOccurred = true; beginTime = detector.getEventTime(); MapboxEvent.trackGestureEvent(projection, MapboxEvent.GESTURE_PINCH_START, detector.getFocusX(), detector.getFocusY(), transform.getZoom()); |