From d329800806425a17e9d5c5e4a696e4730b85b4b9 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Mon, 21 Mar 2016 14:42:07 +0100 Subject: [PATCH] [android] #4326 - using the camera API vs getCameraPosition should return same output --- .../com/mapbox/mapboxsdk/maps/MapboxMap.java | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java index 432dc0ae8..280f5c77b 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java @@ -245,14 +245,15 @@ public class MapboxMap { */ @UiThread public final void moveCamera(CameraUpdate update, MapboxMap.CancelableCallback callback) { - mCameraPosition = update.getCameraPosition(this); - mMapView.jumpTo(mCameraPosition.bearing, mCameraPosition.target, mCameraPosition.tilt, mCameraPosition.zoom); + CameraPosition position = update.getCameraPosition(this); + mMapView.jumpTo(position.bearing, position.target, position.tilt, position.zoom); if (mOnCameraChangeListener != null) { mOnCameraChangeListener.onCameraChange(mCameraPosition); } if (callback != null) { callback.onFinish(); } + invalidateCameraPosition(); } /** @@ -288,24 +289,22 @@ public class MapboxMap { */ @UiThread public final void easeCamera(CameraUpdate update, int durationMs, final MapboxMap.CancelableCallback callback) { - mCameraPosition = update.getCameraPosition(this); - mMapView.easeTo(mCameraPosition.bearing, mCameraPosition.target, getDurationNano(durationMs), mCameraPosition.tilt, mCameraPosition.zoom, new CancelableCallback() { + CameraPosition position = update.getCameraPosition(this); + mMapView.easeTo(position.bearing, position.target, getDurationNano(durationMs), position.tilt, position.zoom, new CancelableCallback() { @Override public void onCancel() { if (callback != null) { callback.onCancel(); } + invalidateCameraPosition(); } @Override public void onFinish() { - if (mOnCameraChangeListener != null) { - mOnCameraChangeListener.onCameraChange(mCameraPosition); - } - if (callback != null) { callback.onFinish(); } + invalidateCameraPosition(); } }); } @@ -358,13 +357,14 @@ public class MapboxMap { */ @UiThread public final void animateCamera(CameraUpdate update, int durationMs, final MapboxMap.CancelableCallback callback) { - mCameraPosition = update.getCameraPosition(this); - mMapView.flyTo(mCameraPosition.bearing, mCameraPosition.target, getDurationNano(durationMs), mCameraPosition.tilt, mCameraPosition.zoom, new CancelableCallback() { + CameraPosition cameraPosition = update.getCameraPosition(this); + mMapView.flyTo(cameraPosition.bearing, cameraPosition.target, getDurationNano(durationMs), cameraPosition.tilt, cameraPosition.zoom, new CancelableCallback() { @Override public void onCancel() { if (callback != null) { callback.onCancel(); } + invalidateCameraPosition(); } @Override @@ -376,6 +376,7 @@ public class MapboxMap { if (callback != null) { callback.onFinish(); } + invalidateCameraPosition(); } }); }