From fedb21e35b53347f8ba741f2f02b84f1a48be50e Mon Sep 17 00:00:00 2001 From: Ivo van Dongen Date: Fri, 24 Feb 2017 16:26:38 +0200 Subject: [android] remove layer returns reference --- .../main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java | 12 ++++++++---- .../java/com/mapbox/mapboxsdk/maps/NativeMapView.java | 15 +++++++++------ .../mapbox/mapboxsdk/testapp/style/RuntimeStyleTests.java | 3 ++- platform/android/src/native_map_view.hpp | 2 +- 4 files changed, 20 insertions(+), 12 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 84bc759ebe..033986eed9 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 @@ -275,20 +275,24 @@ public final class MapboxMap { * Removes the layer. Any references to the layer become invalid and should not be used anymore * * @param layerId the layer to remove + * @return the removed layer or null if not found */ @UiThread - public void removeLayer(@NonNull String layerId) { - nativeMapView.removeLayer(layerId); + @Nullable + public Layer removeLayer(@NonNull String layerId) { + return nativeMapView.removeLayer(layerId); } /** * Removes the layer. The reference is re-usable after this and can be re-added * * @param layer the layer to remove + * @return the layer */ @UiThread - public void removeLayer(@NonNull Layer layer) { - nativeMapView.removeLayer(layer); + @Nullable + public Layer removeLayer(@NonNull Layer layer) { + return nativeMapView.removeLayer(layer); } /** 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 1ec7f1687f..2e495a25c2 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 @@ -768,18 +768,21 @@ final class NativeMapView { nativeAddLayer(layer.getNativePtr(), before); } - public void removeLayer(@NonNull String layerId) { + @Nullable + public Layer removeLayer(@NonNull String layerId) { if (isDestroyedOn("removeLayer")) { - return; + return null; } - nativeRemoveLayerById(layerId); + return nativeRemoveLayerById(layerId); } - public void removeLayer(@NonNull Layer layer) { + @Nullable + public Layer removeLayer(@NonNull Layer layer) { if (isDestroyedOn("removeLayer")) { - return; + return null; } nativeRemoveLayer(layer.getNativePtr()); + return layer; } public List getSources() { @@ -1074,7 +1077,7 @@ final class NativeMapView { private native void nativeAddLayer(long layerPtr, String before) throws CannotAddLayerException; - private native void nativeRemoveLayerById(String layerId); + private native Layer nativeRemoveLayerById(String layerId); private native void nativeRemoveLayer(long layerId); diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/RuntimeStyleTests.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/RuntimeStyleTests.java index 30d71c0ffc..30d7c9a376 100644 --- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/RuntimeStyleTests.java +++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/RuntimeStyleTests.java @@ -147,7 +147,8 @@ public class RuntimeStyleTests { assertNotNull(mapboxMap.getLayer("building")); // Remove - mapboxMap.removeLayer("building"); + Layer building = mapboxMap.removeLayer("building"); + assertNotNull(building); assertNull(mapboxMap.getLayer("building")); // Add diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp index b34eb2cab5..968c98bd6e 100755 --- a/platform/android/src/native_map_view.hpp +++ b/platform/android/src/native_map_view.hpp @@ -207,7 +207,7 @@ public: void addLayer(JNIEnv&, jlong, jni::String); - void removeLayerById(JNIEnv&, jni::String); + jni::Object removeLayerById(JNIEnv&, jni::String); void removeLayer(JNIEnv&, jlong); -- cgit v1.2.1