diff options
author | Łukasz Paczos <lukasz.paczos@mapbox.com> | 2018-01-15 13:47:06 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-15 13:47:06 +0100 |
commit | 5782b6be486f2bf88a3852cd4f6be3bafb7788d0 (patch) | |
tree | f10a6876d68f0bfdfb328f4284898cbe01550e4e /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java | |
parent | b2aa8d6ca5d1b6eb7b6e52d817735eabea9d8de0 (diff) | |
download | qtlocation-mapboxgl-5782b6be486f2bf88a3852cd4f6be3bafb7788d0.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/CameraChangeDispatcher.java')
-rw-r--r-- | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java | 56 |
1 files changed, 11 insertions, 45 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java index 69a43d4d3e..e558a5d707 100644 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/CameraChangeDispatcher.java @@ -34,6 +34,11 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M private final Runnable onCameraMoveStartedRunnable = new Runnable() { @Override public void run() { + if (!idle) { + return; + } + idle = false; + // deprecated API if (onCameraMoveStartedListener != null) { onCameraMoveStartedListener.onCameraMoveStarted(moveStartedReason); @@ -85,6 +90,11 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M private final Runnable onCameraIdleRunnable = new Runnable() { @Override public void run() { + if (idle) { + return; + } + idle = true; + // deprecated API if (onCameraIdleListener != null) { onCameraIdleListener.onCameraIdle(); @@ -121,67 +131,23 @@ class CameraChangeDispatcher implements MapboxMap.OnCameraMoveStartedListener, M @Override public void onCameraMoveStarted(final int reason) { - if (!idle) { - return; - } - idle = false; moveStartedReason = reason; handler.post(onCameraMoveStartedRunnable); - - // new API - if (!onCameraMoveStarted.isEmpty()) { - for (OnCameraMoveStartedListener cameraMoveStartedListener : onCameraMoveStarted) { - cameraMoveStartedListener.onCameraMoveStarted(reason); - } - } } @Override public void onCameraMove() { handler.post(onCameraMoveRunnable); - if (onCameraMoveListener != null && !idle) { - onCameraMoveListener.onCameraMove(); - } - - // new API - if (!onCameraMove.isEmpty() && !idle) { - for (OnCameraMoveListener cameraMoveListener : onCameraMove) { - cameraMoveListener.onCameraMove(); - } - } } @Override public void onCameraMoveCanceled() { handler.post(onCameraMoveCancelRunnable); - if (onCameraMoveCanceledListener != null && !idle) { - onCameraMoveCanceledListener.onCameraMoveCanceled(); - } - - // new API - if (!onCameraMoveCanceled.isEmpty() && !idle) { - for (OnCameraMoveCanceledListener cameraMoveCanceledListener : onCameraMoveCanceled) { - cameraMoveCanceledListener.onCameraMoveCanceled(); - } - } } @Override public void onCameraIdle() { - if (!idle) { - idle = true; - handler.post(onCameraIdleRunnable); - if (onCameraIdleListener != null) { - onCameraIdleListener.onCameraIdle(); - } - - // new API - if (!onCameraIdle.isEmpty()) { - for (OnCameraIdleListener cameraIdleListener : onCameraIdle) { - cameraIdleListener.onCameraIdle(); - } - } - } + handler.post(onCameraIdleRunnable); } void addOnCameraIdleListener(@NonNull OnCameraIdleListener listener) { |