diff options
author | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2018-06-19 15:52:31 +0200 |
---|---|---|
committer | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2018-06-20 16:14:38 +0200 |
commit | 36c3fb640da373b6243cc5bda71ca21e2d6764ab (patch) | |
tree | 972c6d2b216d249f43ef78200883a81de16c405a | |
parent | 8d5b4db6f928b5c240b3ea1ddaec60b1180187ce (diff) | |
download | qtlocation-mapboxgl-36c3fb640da373b6243cc5bda71ca21e2d6764ab.tar.gz |
[android] - dispatch camera start callback only when actually moving
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapGestureDetector.java | 28 |
1 files changed, 12 insertions, 16 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 896f655bbc..6cb09f2195 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 @@ -438,25 +438,24 @@ final class MapGestureDetector { } transform.cancelTransitions(); - cameraChangeDispatcher.onCameraMoveStarted(REASON_API_GESTURE); - sendTelemetryEvent(Telemetry.PAN, detector.getFocalPoint()); - notifyOnMoveBeginListeners(detector); - return true; } @Override public boolean onMove(MoveGestureDetector detector, float distanceX, float distanceY) { - // dispatching start even once more if another detector ended, and this one didn't - cameraChangeDispatcher.onCameraMoveStarted(CameraChangeDispatcher.REASON_API_GESTURE); + // first move event is often delivered with no displacement + if (distanceX != 0 || distanceY != 0) { + // dispatching camera start event only when the movement actually occurred + cameraChangeDispatcher.onCameraMoveStarted(CameraChangeDispatcher.REASON_API_GESTURE); - // Scroll the map - transform.moveBy(-distanceX, -distanceY, 0 /*no duration*/); + // Scroll the map + transform.moveBy(-distanceX, -distanceY, 0 /*no duration*/); - notifyOnScrollListeners(); - notifyOnMoveListeners(detector); + notifyOnScrollListeners(); + notifyOnMoveListeners(detector); + } return true; } @@ -485,7 +484,6 @@ final class MapGestureDetector { } transform.cancelTransitions(); - cameraChangeDispatcher.onCameraMoveStarted(REASON_API_GESTURE); quickZoom = detector.getPointersCount() == 1; if (quickZoom) { @@ -514,7 +512,7 @@ final class MapGestureDetector { @Override public boolean onScale(StandardScaleGestureDetector detector) { - // dispatching start even once more if another detector ended, and this one didn't + // dispatching camera start event only when the movement actually occurred cameraChangeDispatcher.onCameraMoveStarted(CameraChangeDispatcher.REASON_API_GESTURE); setScaleFocalPoint(detector); @@ -615,7 +613,6 @@ final class MapGestureDetector { } transform.cancelTransitions(); - cameraChangeDispatcher.onCameraMoveStarted(REASON_API_GESTURE); if (uiSettings.isIncreaseScaleThresholdWhenRotating()) { // when rotation starts, interrupting scale and increasing the threshold @@ -637,7 +634,7 @@ final class MapGestureDetector { @Override public boolean onRotate(RotateGestureDetector detector, float rotationDegreesSinceLast, float rotationDegreesSinceFirst) { - // dispatching start even once more if another detector ended, and this one didn't + // dispatching camera start event only when the movement actually occurred cameraChangeDispatcher.onCameraMoveStarted(CameraChangeDispatcher.REASON_API_GESTURE); setRotateFocalPoint(detector); @@ -743,7 +740,6 @@ final class MapGestureDetector { } transform.cancelTransitions(); - cameraChangeDispatcher.onCameraMoveStarted(REASON_API_GESTURE); sendTelemetryEvent(Telemetry.PITCH, detector.getFocalPoint()); @@ -757,7 +753,7 @@ final class MapGestureDetector { @Override public boolean onShove(ShoveGestureDetector detector, float deltaPixelsSinceLast, float deltaPixelsSinceStart) { - // dispatching start even once more if another detector ended, and this one didn't + // dispatching camera start event only when the movement actually occurred cameraChangeDispatcher.onCameraMoveStarted(CameraChangeDispatcher.REASON_API_GESTURE); // Get tilt value (scale and clamp) |