summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorBrad Leege <bleege@gmail.com>2016-02-18 14:43:35 -0600
committerBrad Leege <bleege@gmail.com>2016-02-19 12:40:08 -0600
commit92c5a05f595a5d5e40dd95eed7d2fe5bed519edd (patch)
tree29e455f6eb8aff35b38eb25c4b750e561e7278d4 /platform
parent425d718e42202aecc69e9085532a90581b2abbfe (diff)
downloadqtlocation-mapboxgl-92c5a05f595a5d5e40dd95eed7d2fe5bed519edd.tar.gz
[android] #3889 - Adding Double Tap and Two Finger Tap gesture tracking
Diffstat (limited to 'platform')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java44
1 files changed, 25 insertions, 19 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
index 1cdf226ae9..7848110269 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
@@ -1469,6 +1469,25 @@ public class MapView extends FrameLayout {
// Touch events
//
+ /**
+ * Helper method for tracking gesture events
+ * @param gestureId Type of Gesture See {@see MapboxEvent#GESTURE_SINGLETAP MapboxEvent#GESTURE_DOUBLETAP MapboxEvent#GESTURE_TWO_FINGER_SINGLETAP MapboxEvent#GESTURE_QUICK_ZOOM MapboxEvent#GESTURE_PAN_START MapboxEvent#GESTURE_PINCH_START MapboxEvent#GESTURE_ROTATION_START MapboxEvent#GESTURE_PITCH_START}
+ * @param motionEvent Original MotionEvent at start of gesture
+ */
+ private void trackGestureEvent(@NonNull String gestureId, @NonNull MotionEvent motionEvent) {
+
+ LatLng tapLatLng = fromScreenLocation(new PointF(motionEvent.getX(), motionEvent.getY()));
+
+ Hashtable<String, Object> evt = new Hashtable<>();
+ evt.put(MapboxEvent.ATTRIBUTE_EVENT, MapboxEvent.TYPE_MAP_CLICK);
+ evt.put(MapboxEvent.KEY_GESTURE_ID, gestureId);
+ evt.put(MapboxEvent.KEY_LATITUDE, tapLatLng.getLatitude());
+ evt.put(MapboxEvent.KEY_LONGITUDE, tapLatLng.getLongitude());
+ evt.put(MapboxEvent.KEY_ZOOM, mMapboxMap.getCameraPosition().zoom);
+
+ MapboxEventManager.getMapboxEventManager(getContext()).pushEvent(evt);
+ }
+
// Called when user touches the screen, all positions are absolute
@Override
public boolean onTouchEvent(@NonNull MotionEvent event) {
@@ -1493,6 +1512,10 @@ public class MapView extends FrameLayout {
case MotionEvent.ACTION_POINTER_DOWN:
// Second pointer down
mTwoTap = event.getPointerCount() == 2;
+ if (mTwoTap) {
+ // Confirmed 2nd Finger Down
+ trackGestureEvent(MapboxEvent.GESTURE_TWO_FINGER_SINGLETAP, event);
+ }
break;
case MotionEvent.ACTION_POINTER_UP:
@@ -1572,6 +1595,8 @@ public class MapView extends FrameLayout {
break;
}
+ trackGestureEvent(MapboxEvent.GESTURE_DOUBLETAP, e);
+
return true;
}
@@ -1723,25 +1748,6 @@ public class MapView extends FrameLayout {
return true;
}
-
- /**
- * Helper method for tracking gesture events
- * @param gestureId Type of Gesture See {@see MapboxEvent#GESTURE_SINGLETAP MapboxEvent#GESTURE_DOUBLETAP MapboxEvent#GESTURE_TWO_FINGER_SINGLETAP MapboxEvent#GESTURE_QUICK_ZOOM MapboxEvent#GESTURE_PAN_START MapboxEvent#GESTURE_PINCH_START MapboxEvent#GESTURE_ROTATION_START MapboxEvent#GESTURE_PITCH_START}
- * @param motionEvent Original MotionEvent at start of gesture
- */
- private void trackGestureEvent(@NonNull String gestureId, @NonNull MotionEvent motionEvent) {
-
- LatLng tapLatLng = fromScreenLocation(new PointF(motionEvent.getX(), motionEvent.getY()));
-
- Hashtable<String, Object> evt = new Hashtable<>();
- evt.put(MapboxEvent.ATTRIBUTE_EVENT, MapboxEvent.TYPE_MAP_CLICK);
- evt.put(MapboxEvent.KEY_GESTURE_ID, gestureId);
- evt.put(MapboxEvent.KEY_LATITUDE, tapLatLng.getLatitude());
- evt.put(MapboxEvent.KEY_LONGITUDE, tapLatLng.getLongitude());
- evt.put(MapboxEvent.KEY_ZOOM, mMapboxMap.getCameraPosition().zoom);
-
- MapboxEventManager.getMapboxEventManager(getContext()).pushEvent(evt);
- }
}
// This class handles two finger gestures and double-tap drag gestures