diff options
author | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2018-01-15 13:47:06 +0100 |
---|---|---|
committer | Tobrun <tobrun@mapbox.com> | 2018-01-23 12:09:48 +0100 |
commit | c3068ec3975c0c13486c5a456cc9ae26baf4f755 (patch) | |
tree | c463e956896a17194085123fb2c052f3ee3d147f /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java | |
parent | 06f3f8fddb574dec0b498dfa696a7b639596e9c2 (diff) | |
download | qtlocation-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.java | 12 |
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); } } |