diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-11-23 10:53:39 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-11-23 10:53:39 +0100 |
commit | edb487b74d800d46f04b27dd7610a028720de79a (patch) | |
tree | 9c505790a26cc01ba3a8bc4c3565b824bcf8979e /platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java | |
parent | 4577c56745d90cfa00837d00e5e5605260a54879 (diff) | |
download | qtlocation-mapboxgl-edb487b74d800d46f04b27dd7610a028720de79a.tar.gz |
[android] - move camera logic to dedicated transform class (#6919)
* [android] - move camera logic to dedicated transform class
post camera updates to the message queue, this makes calling an new camera update in the on finish of another update possible. Simplify transform.java implementation.
* fail the step if instrumentation tests fail, fixup typo
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java')
-rwxr-xr-x | platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java index e7e3e647af..cdd275ee34 100755 --- a/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java +++ b/platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java @@ -30,6 +30,7 @@ import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; import java.util.List; +import java.util.concurrent.CopyOnWriteArrayList; // Class that wraps the native methods for convenience final class NativeMapView { @@ -44,6 +45,8 @@ final class NativeMapView { private final float pixelRatio; + private CopyOnWriteArrayList<MapView.OnMapChangedListener> onMapChangedListeners; + // // Static methods // @@ -83,7 +86,7 @@ final class NativeMapView { if (totalMemory < 0) { throw new IllegalArgumentException("totalMemory cannot be negative."); } - + onMapChangedListeners = new CopyOnWriteArrayList<>(); this.mapView = mapView; nativeMapViewPtr = nativeCreate(cachePath, dataPath, apkPath, pixelRatio, availableProcessors, totalMemory); } @@ -778,4 +781,24 @@ final class NativeMapView { private native Feature[] nativeQueryRenderedFeaturesForBox(long nativeMapViewPtr, float left, float top, float right, float bottom, String[] layerIds); private native void nativeSetAPIBaseURL(long nativeMapViewPtr, String baseUrl); + + // + // MapChangeEvents + // + + void addOnMapChangedListener(@NonNull MapView.OnMapChangedListener listener) { + onMapChangedListeners.add(listener); + } + + void removeOnMapChangedListener(@NonNull MapView.OnMapChangedListener listener) { + onMapChangedListeners.remove(listener); + } + + void onMapChangedEventDispatch(int mapChange) { + if (onMapChangedListeners != null) { + for (MapView.OnMapChangedListener onMapChangedListener : onMapChangedListeners) { + onMapChangedListener.onMapChanged(mapChange); + } + } + } } |