diff options
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 |
commit | 8974b7c815cb1a312e534686478010b518ec8c37 (patch) | |
tree | 0fcb60222fccb4cf8830df36ae918e072164cb3d /platform/android/MapboxGLAndroidSDK/src/main | |
parent | 49ab62968a9720f255687651ae6fa21504903fbe (diff) | |
download | qtlocation-mapboxgl-8974b7c815cb1a312e534686478010b518ec8c37.tar.gz |
[android] do not invoke #onCancel when animation is scheduled from #onFinish block
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/Transform.java | 16 |
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 |