summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
diff options
context:
space:
mode:
authorTobrun <tobrun.van.nuland@gmail.com>2017-01-11 17:31:51 +0100
committerGitHub <noreply@github.com>2017-01-11 17:31:51 +0100
commit4ce8d3e4e313fd436d2c8bc233d44ab90d23c64d (patch)
treed3bd5f355acdb943cefc209da22a58c0fed7a6f5 /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java
parentae463564f82bd876a6ef73acfac955eb22666fc0 (diff)
downloadqtlocation-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.java9
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());