summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapView.java73
1 files changed, 64 insertions, 9 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 cf70300c6e..9ace60b481 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
@@ -23,6 +23,7 @@ import android.widget.FrameLayout;
import android.widget.ImageView;
import android.widget.ZoomButtonsController;
+import com.mapbox.android.gestures.AndroidGesturesManager;
import com.mapbox.android.telemetry.AppUserTurnstile;
import com.mapbox.android.telemetry.Event;
import com.mapbox.android.telemetry.MapEventFactory;
@@ -42,8 +43,6 @@ import com.mapbox.mapboxsdk.maps.widgets.MyLocationViewSettings;
import com.mapbox.mapboxsdk.net.ConnectivityReceiver;
import com.mapbox.mapboxsdk.storage.FileSource;
-import javax.microedition.khronos.egl.EGLConfig;
-import javax.microedition.khronos.opengles.GL10;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.ref.WeakReference;
@@ -52,6 +51,9 @@ import java.util.Iterator;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
+import javax.microedition.khronos.egl.EGLConfig;
+import javax.microedition.khronos.opengles.GL10;
+
import timber.log.Timber;
import static com.mapbox.mapboxsdk.maps.widgets.CompassView.TIME_MAP_NORTH_ANIMATION;
@@ -149,7 +151,7 @@ public class MapView extends FrameLayout {
focalPointInvalidator.addListener(createFocalPointChangeListener());
// callback for registering touch listeners
- RegisterTouchListener registerTouchListener = new RegisterTouchListener();
+ GesturesManagerInteractionListener registerTouchListener = new GesturesManagerInteractionListener();
// callback for zooming in the camera
CameraZoomInvalidator zoomInvalidator = new CameraZoomInvalidator();
@@ -184,7 +186,7 @@ public class MapView extends FrameLayout {
mapCallback.attachMapboxMap(mapboxMap);
// user input
- mapGestureDetector = new MapGestureDetector(context, transform, proj, uiSettings, trackingSettings,
+ mapGestureDetector = new MapGestureDetector(context, transform, proj, uiSettings,
annotationManager, cameraChangeDispatcher);
mapKeyListener = new MapKeyListener(transform, trackingSettings, uiSettings);
@@ -390,6 +392,7 @@ public class MapView extends FrameLayout {
public void onStop() {
if (mapboxMap != null) {
// map was destroyed before it was started
+ mapGestureDetector.cancelAnimators();
mapboxMap.onStop();
}
@@ -923,7 +926,7 @@ public class MapView extends FrameLayout {
}
}
- private class RegisterTouchListener implements MapboxMap.OnRegisterTouchListener {
+ private class GesturesManagerInteractionListener implements MapboxMap.OnGesturesManagerInteractionListener {
@Override
public void onSetMapClickListener(MapboxMap.OnMapClickListener listener) {
@@ -984,6 +987,56 @@ public class MapView extends FrameLayout {
public void onRemoveFlingListener(MapboxMap.OnFlingListener listener) {
mapGestureDetector.removeOnFlingListener(listener);
}
+
+ @Override
+ public void onAddMoveListener(MapboxMap.OnMoveListener listener) {
+ mapGestureDetector.addOnMoveListener(listener);
+ }
+
+ @Override
+ public void onRemoveMoveListener(MapboxMap.OnMoveListener listener) {
+ mapGestureDetector.removeOnMoveListener(listener);
+ }
+
+ @Override
+ public void onAddRotateListener(MapboxMap.OnRotateListener listener) {
+ mapGestureDetector.addOnRotateListener(listener);
+ }
+
+ @Override
+ public void onRemoveRotateListener(MapboxMap.OnRotateListener listener) {
+ mapGestureDetector.removeOnRotateListener(listener);
+ }
+
+ @Override
+ public void onAddScaleListener(MapboxMap.OnScaleListener listener) {
+ mapGestureDetector.addOnScaleListener(listener);
+ }
+
+ @Override
+ public void onRemoveScaleListener(MapboxMap.OnScaleListener listener) {
+ mapGestureDetector.removeOnScaleListener(listener);
+ }
+
+ @Override
+ public void onAddShoveListener(MapboxMap.OnShoveListener listener) {
+ mapGestureDetector.addShoveListener(listener);
+ }
+
+ @Override
+ public void onRemoveShoveListener(MapboxMap.OnShoveListener listener) {
+ mapGestureDetector.removeShoveListener(listener);
+ }
+
+ @Override
+ public AndroidGesturesManager getGesturesManager() {
+ return mapGestureDetector.getGesturesManager();
+ }
+
+ @Override
+ public void setGesturesManager(AndroidGesturesManager gesturesManager) {
+ mapGestureDetector.setGesturesManager(gesturesManager);
+ }
}
private static class MapZoomControllerListener implements ZoomButtonsController.OnZoomListener {
@@ -1021,11 +1074,13 @@ public class MapView extends FrameLayout {
}
private void onZoom(boolean zoomIn, @Nullable PointF focalPoint) {
- if (focalPoint != null) {
- transform.zoom(zoomIn, focalPoint);
+ if (focalPoint == null) {
+ focalPoint = new PointF(mapWidth / 2, mapHeight / 2);
+ }
+ if (zoomIn) {
+ transform.zoomIn(focalPoint);
} else {
- PointF centerPoint = new PointF(mapWidth / 2, mapHeight / 2);
- transform.zoom(zoomIn, centerPoint);
+ transform.zoomOut(focalPoint);
}
}
}