diff options
author | Ivo van Dongen <info@ivovandongen.nl> | 2016-11-14 10:44:06 +0100 |
---|---|---|
committer | Ivo van Dongen <ivovandongen@users.noreply.github.com> | 2016-11-14 14:05:18 +0100 |
commit | 8d53f9f09191b390a5a6f31b41714a8178ed326b (patch) | |
tree | f64b06229a09bb278f682594ed983de421311300 /platform/android/MapboxGLAndroidSDK/src | |
parent | f66ea0bef9071cf7c27e456e7eb9528b8cff5e30 (diff) | |
download | qtlocation-mapboxgl-8d53f9f09191b390a5a6f31b41714a8178ed326b.tar.gz |
[android] return layer ownership on remove
Diffstat (limited to 'platform/android/MapboxGLAndroidSDK/src')
2 files changed, 19 insertions, 2 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 14eacb9a71..399e262c0f 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 @@ -155,6 +155,17 @@ public class MapboxMap { getMapView().getNativeMapView().removeLayer(layerId); } + /** + * Removes the layer. The reference is re-usable after this and can be re-added + * + * @param layer the layer to remove + * @throws NoSuchLayerException + */ + @UiThread + public void removeLayer(@NonNull Layer layer) throws NoSuchLayerException { + getMapView().getNativeMapView().removeLayer(layer); + } + @Nullable @UiThread public Source getSource(@NonNull String sourceId) { 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 dba11e167f..3e5ba99c70 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 @@ -491,7 +491,11 @@ final class NativeMapView { } public void removeLayer(@NonNull String layerId) throws NoSuchLayerException { - nativeRemoveLayer(nativeMapViewPtr, layerId); + nativeRemoveLayerById(nativeMapViewPtr, layerId); + } + + public void removeLayer(@NonNull Layer layer) throws NoSuchLayerException { + nativeRemoveLayer(nativeMapViewPtr, layer.getNativePtr()); } public Source getSource(@NonNull String sourceId) { @@ -743,7 +747,9 @@ final class NativeMapView { private native void nativeAddLayer(long nativeMapViewPtr, long layerPtr, String before); - private native void nativeRemoveLayer(long nativeMapViewPtr, String layerId) throws NoSuchLayerException; + private native void nativeRemoveLayerById(long nativeMapViewPtr, String layerId) throws NoSuchLayerException; + + private native void nativeRemoveLayer(long nativeMapViewPtr, long layerId) throws NoSuchLayerException; private native Source nativeGetSource(long nativeMapViewPtr, String sourceId); |