summaryrefslogtreecommitdiff
path: root/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
diff options
context:
space:
mode:
authorŁukasz Paczos <lukas.paczos@gmail.com>2019-01-15 18:10:28 +0100
committerŁukasz Paczos <lukasz.paczos@mapbox.com>2019-01-16 11:42:24 +0100
commit8974b7c815cb1a312e534686478010b518ec8c37 (patch)
tree0fcb60222fccb4cf8830df36ae918e072164cb3d /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java
parent49ab62968a9720f255687651ae6fa21504903fbe (diff)
downloadqtlocation-mapboxgl-8974b7c815cb1a312e534686478010b518ec8c37.tar.gz
[android] do not invoke #onCancel when animation is scheduled from #onFinish block
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.java16
1 files changed, 11 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 9356b112ba..c40994d7ca 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
@@ -5,6 +5,7 @@ import android.os.Handler;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.annotation.UiThread;
+
import com.mapbox.mapboxsdk.camera.CameraPosition;
import com.mapbox.mapboxsdk.camera.CameraUpdate;
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory;
@@ -77,13 +78,15 @@ final class Transform implements MapView.OnCameraDidChangeListener {
if (animated) {
invalidateCameraPosition();
if (cameraCancelableCallback != null) {
+ final MapboxMap.CancelableCallback callback = cameraCancelableCallback;
+
+ // nullification has to happen before Handler#post, see https://github.com/robolectric/robolectric/issues/1306
+ cameraCancelableCallback = null;
+
handler.post(new Runnable() {
@Override
public void run() {
- if (cameraCancelableCallback != null) {
- cameraCancelableCallback.onFinish();
- cameraCancelableCallback = null;
- }
+ callback.onFinish();
}
});
}
@@ -173,13 +176,16 @@ final class Transform implements MapView.OnCameraDidChangeListener {
if (cameraCancelableCallback != null) {
final MapboxMap.CancelableCallback callback = cameraCancelableCallback;
cameraChangeDispatcher.onCameraIdle();
+
+ // nullification has to happen before Handler#post, see https://github.com/robolectric/robolectric/issues/1306
+ cameraCancelableCallback = null;
+
handler.post(new Runnable() {
@Override
public void run() {
callback.onCancel();
}
});
- cameraCancelableCallback = null;
}
// cancel ongoing transitions