From 969fdd08f2b0768ff9e1b61d6064005c05d29d9f Mon Sep 17 00:00:00 2001 From: Tobrun Van Nuland Date: Fri, 20 Jan 2017 16:32:40 +0100 Subject: [android] - cleanup annotation icon, provide binding implementation of remove annotation image --- .../main/java/com/mapbox/mapboxsdk/maps/NativeMapView.java | 9 +++++++++ platform/android/src/jni.cpp | 11 +++++++++++ 2 files changed, 20 insertions(+) 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 0c15480dee..79f07b2ab3 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 @@ -641,6 +641,13 @@ final class NativeMapView { nativeAddAnnotationIcon(nativeMapViewPtr, symbol, width, height, scale, pixels); } + public void removeAnnotationIcon(String symbol){ + if(isDestroyedOn("removeAnnotationIcon")){ + return; + } + nativeRemoveAnnotationIcon(nativeMapViewPtr, symbol); + } + public void setVisibleCoordinateBounds(LatLng[] coordinates, RectF padding, double direction, long duration) { if (isDestroyedOn("setVisibleCoordinateBounds")) { return; @@ -1075,6 +1082,8 @@ final class NativeMapView { private native void nativeAddAnnotationIcon(long nativeMapViewPtr, String symbol, int width, int height, float scale, byte[] pixels); + private native void nativeRemoveAnnotationIcon(long nativeMapViewPtr, String symbol); + private native void nativeSetVisibleCoordinateBounds(long nativeMapViewPtr, LatLng[] coordinates, RectF padding, double direction, long duration); diff --git a/platform/android/src/jni.cpp b/platform/android/src/jni.cpp index 1ef7fec8fb..75187fbe81 100755 --- a/platform/android/src/jni.cpp +++ b/platform/android/src/jni.cpp @@ -854,6 +854,16 @@ void nativeAddAnnotationIcon(JNIEnv *env, jni::jobject* obj, jlong nativeMapView nativeMapView->getMap().addAnnotationIcon(symbolName, iconImage); } +void nativeRemoveAnnotationIcon(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr, + jni::jstring* symbol) { + assert(nativeMapViewPtr != 0); + NativeMapView *nativeMapView = reinterpret_cast(nativeMapViewPtr); + + const std::string symbolName = std_string_from_jstring(env, symbol); + + nativeMapView->getMap().removeAnnotationIcon(symbolName); +} + void nativeSetVisibleCoordinateBounds(JNIEnv *env, jni::jobject* obj, jlong nativeMapViewPtr, jni::jarray* coordinates, jni::jobject* padding, jdouble direction, jlong duration) { assert(nativeMapViewPtr != 0); @@ -1902,6 +1912,7 @@ void registerNatives(JavaVM *vm) { MAKE_NATIVE_METHOD(nativeRemoveAnnotations, "(J[J)V"), MAKE_NATIVE_METHOD(nativeQueryPointAnnotations, "(JLandroid/graphics/RectF;)[J"), MAKE_NATIVE_METHOD(nativeAddAnnotationIcon, "(JLjava/lang/String;IIF[B)V"), + MAKE_NATIVE_METHOD(nativeRemoveAnnotationIcon, "(JLjava/lang/String;)V"), MAKE_NATIVE_METHOD(nativeSetVisibleCoordinateBounds, "(J[Lcom/mapbox/mapboxsdk/geometry/LatLng;Landroid/graphics/RectF;DJ)V"), MAKE_NATIVE_METHOD(nativeOnLowMemory, "(J)V"), MAKE_NATIVE_METHOD(nativeSetDebug, "(JZ)V"), -- cgit v1.2.1