summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIvo van Dongen <info@ivovandongen.nl>2017-02-24 16:35:27 +0200
committerIvo van Dongen <ivovandongen@users.noreply.github.com>2017-02-28 09:33:04 -0800
commit3040d407723ed8a8e2dfa27ad0ba49f534772342 (patch)
tree2bf6c57ebf06efd3a6f9029fd72e0a6b04ca3b0d
parentfedb21e35b53347f8ba741f2f02b84f1a48be50e (diff)
downloadqtlocation-mapboxgl-3040d407723ed8a8e2dfa27ad0ba49f534772342.tar.gz
[android] remove source returns reference
-rw-r--r--platform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/MapboxMap.java12
-rwxr-xr-xplatform/android/MapboxGLAndroidSDK/src/main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java14
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/RuntimeStyleTests.java3
-rwxr-xr-xplatform/android/src/native_map_view.cpp9
-rwxr-xr-xplatform/android/src/native_map_view.hpp2
5 files changed, 26 insertions, 14 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 033986eed9..ecea6b2244 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
@@ -350,20 +350,24 @@ public final class MapboxMap {
* Removes the source. Any references to the source become invalid and should not be used anymore
*
* @param sourceId the source to remove
+ * @return the source handle or null if the source was not present
*/
@UiThread
- public void removeSource(@NonNull String sourceId) {
- nativeMapView.removeSource(sourceId);
+ @Nullable
+ public Source removeSource(@NonNull String sourceId) {
+ return nativeMapView.removeSource(sourceId);
}
/**
* Removes the source, preserving the reverence for re-use
*
* @param source the source to remove
+ * @return the source
*/
@UiThread
- public void removeSource(@NonNull Source source) {
- nativeMapView.removeSource(source);
+ @Nullable
+ public Source removeSource(@NonNull Source source) {
+ return nativeMapView.removeSource(source);
}
/**
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 2e495a25c2..47f4ad722e 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
@@ -806,18 +806,20 @@ final class NativeMapView {
nativeAddSource(source.getNativePtr());
}
- public void removeSource(@NonNull String sourceId) {
+ @Nullable
+ public Source removeSource(@NonNull String sourceId) {
if (isDestroyedOn("removeSource")) {
- return;
+ return null;
}
- nativeRemoveSourceById(sourceId);
+ return nativeRemoveSourceById(sourceId);
}
- public void removeSource(@NonNull Source source) {
+ public Source removeSource(@NonNull Source source) {
if (isDestroyedOn("removeSource")) {
- return;
+ return null;
}
nativeRemoveSource(source.getNativePtr());
+ return source;
}
public void addImage(@NonNull String name, @NonNull Bitmap image) {
@@ -1087,7 +1089,7 @@ final class NativeMapView {
private native void nativeAddSource(long nativeSourcePtr) throws CannotAddSourceException;
- private native void nativeRemoveSourceById(String sourceId);
+ private native Source nativeRemoveSourceById(String sourceId);
private native void nativeRemoveSource(long sourcePtr);
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 30d7c9a376..cda4b62d58 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
@@ -192,7 +192,8 @@ public class RuntimeStyleTests {
mapboxMap.addSource(new VectorSource("my-source", "mapbox://mapbox.mapbox-terrain-v2"));
// Remove
- mapboxMap.removeSource("my-source");
+ Source mySource = mapboxMap.removeSource("my-source");
+ assertNotNull(mySource);
assertNull(mapboxMap.getLayer("my-source"));
// Add
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp
index e188a98c6e..5587300c1c 100755
--- a/platform/android/src/native_map_view.cpp
+++ b/platform/android/src/native_map_view.cpp
@@ -844,8 +844,13 @@ void NativeMapView::addSource(JNIEnv& env, jni::jlong sourcePtr) {
}
}
-void NativeMapView::removeSourceById(JNIEnv& env, jni::String id) {
- map->removeSource(jni::Make<std::string>(env, id));
+jni::Object<Source> NativeMapView::removeSourceById(JNIEnv& env, jni::String id) {
+ std::unique_ptr<mbgl::style::Source> coreSource = map->removeSource(jni::Make<std::string>(env, id));
+ if (coreSource) {
+ return jni::Object<Source>(createJavaSourcePeer(env, *map, *coreSource));
+ } else {
+ return jni::Object<Source>();
+ }
}
void NativeMapView::removeSource(JNIEnv&, jlong sourcePtr) {
diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp
index 968c98bd6e..7b3694e73c 100755
--- a/platform/android/src/native_map_view.hpp
+++ b/platform/android/src/native_map_view.hpp
@@ -217,7 +217,7 @@ public:
void addSource(JNIEnv&, jni::jlong);
- void removeSourceById(JNIEnv&, jni::String);
+ jni::Object<Source> removeSourceById(JNIEnv&, jni::String);
void removeSource(JNIEnv&, jlong);