summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
diff options
context:
space:
mode:
authorŁukasz Paczos <lukasz.paczos@mapbox.com>2018-01-15 13:47:06 +0100
committerTobrun <tobrun@mapbox.com>2018-01-23 12:09:48 +0100
commitc3068ec3975c0c13486c5a456cc9ae26baf4f755 (patch)
treec463e956896a17194085123fb2c052f3ee3d147f /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
parent06f3f8fddb574dec0b498dfa696a7b639596e9c2 (diff)
downloadqtlocation-mapboxgl-c3068ec3975c0c13486c5a456cc9ae26baf4f755.tar.gz
Camera callbacks for velocity animated movements (#10925)
* [android] camera listeners double invocation fix * [android] invoking camera change callbacks for velocity animated movements
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java')
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
index b0cc92c62b..7fa85ae550 100644
--- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
+++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
@@ -239,7 +239,7 @@ final class Transform implements MapView.OnMapChangedListener {
CameraPosition cameraPosition = invalidateCameraPosition();
if (cameraPosition != null) {
int newZoom = (int) Math.round(cameraPosition.zoom + (zoomIn ? 1 : -1));
- setZoom(newZoom, focalPoint, MapboxConstants.ANIMATION_DURATION);
+ setZoom(newZoom, focalPoint, MapboxConstants.ANIMATION_DURATION, false);
} else {
// we are not transforming, notify about being idle
cameraChangeDispatcher.onCameraIdle();
@@ -250,7 +250,7 @@ final class Transform implements MapView.OnMapChangedListener {
CameraPosition cameraPosition = invalidateCameraPosition();
if (cameraPosition != null) {
int newZoom = (int) Math.round(cameraPosition.zoom + zoomAddition);
- setZoom(newZoom, focalPoint, duration);
+ setZoom(newZoom, focalPoint, duration, false);
} else {
// we are not transforming, notify about being idle
cameraChangeDispatcher.onCameraIdle();
@@ -258,16 +258,18 @@ final class Transform implements MapView.OnMapChangedListener {
}
void setZoom(double zoom, @NonNull PointF focalPoint) {
- setZoom(zoom, focalPoint, 0);
+ setZoom(zoom, focalPoint, 0, false);
}
- void setZoom(double zoom, @NonNull PointF focalPoint, long duration) {
+ void setZoom(double zoom, @NonNull PointF focalPoint, long duration, boolean isAnimator) {
if (mapView != null) {
mapView.addOnMapChangedListener(new MapView.OnMapChangedListener() {
@Override
public void onMapChanged(int change) {
if (change == MapView.REGION_DID_CHANGE_ANIMATED) {
- cameraChangeDispatcher.onCameraIdle();
+ if (!isAnimator) {
+ cameraChangeDispatcher.onCameraIdle();
+ }
mapView.removeOnMapChangedListener(this);
}
}