diff options
author | Nicholas Hallahan <nick@theoutpost.io> | 2015-07-15 18:08:23 -0700 |
---|---|---|
committer | Nicholas Hallahan <nick@theoutpost.io> | 2015-07-15 18:08:23 -0700 |
commit | 062a942c462a04c729907365ab7b0fc025d5683d (patch) | |
tree | e888db56bbe276a8bf8def58a49aeada6b91034a | |
parent | 8107501edb90ee3a971744ea2c3e568787b1a3b6 (diff) | |
download | qtlocation-mapboxgl-062a942c462a04c729907365ab7b0fc025d5683d.tar.gz |
JNI - getting all of the primitives from Polyline #1716
-rw-r--r-- | android/cpp/jni.cpp | 47 |
1 files changed, 44 insertions, 3 deletions
diff --git a/android/cpp/jni.cpp b/android/cpp/jni.cpp index ab83b2f43d..e635eaa251 100644 --- a/android/cpp/jni.cpp +++ b/android/cpp/jni.cpp @@ -43,6 +43,9 @@ jfieldID latLngLongitudeId = nullptr; jclass polylineClass = nullptr; jmethodID polylineConstructorId = nullptr; jfieldID polylineAlphaId = nullptr; +jfieldID polylineVisibleId = nullptr; +jfieldID polylineColorId = nullptr; +jfieldID polylineWidthId = nullptr; jclass latLngZoomClass = nullptr; jmethodID latLngZoomConstructorId = nullptr; @@ -465,20 +468,40 @@ jlong JNICALL nativeAddPolyline(JNIEnv *env, jobject obj, jlong nativeMapViewPtr // NativeMapView *nativeMapView = reinterpret_cast<NativeMapView *>(nativeMapViewPtr); // ***** Java fields ***** // - // float alpha; // boolean visible; - // List<LatLng> points // int color // float width + // List<LatLng> points jfloat alpha = env->GetFloatField(polyline, polylineAlphaId); if (env->ExceptionCheck()) { env->ExceptionDescribe(); return -1; } + ++alpha; + + jboolean visible = env->GetBooleanField(polyline, polylineVisibleId); + if (env->ExceptionCheck()) { + env->ExceptionDescribe(); + return -1; + } + visible = JNI_TRUE; + + jint color = env->GetIntField(polyline, polylineColorId); + if (env->ExceptionCheck()) { + env->ExceptionDescribe(); + return -1; + } + ++color; + + jfloat width = env->GetFloatField(polyline, polylineWidthId); + if (env->ExceptionCheck()) { + env->ExceptionDescribe(); + return -1; + } - return (jlong)alpha; + return (jlong)width; } void JNICALL nativeRemoveAnnotation(JNIEnv *env, jobject obj, jlong nativeMapViewPtr, jlong annotationId) { @@ -856,6 +879,24 @@ extern "C" JNIEXPORT jint JNICALL JNI_OnLoad(JavaVM *vm, void *reserved) { return JNI_ERR; } + polylineVisibleId = env->GetFieldID(polylineClass, "visible", "Z"); + if (polylineVisibleId == nullptr) { + env->ExceptionDescribe(); + return JNI_ERR; + } + + polylineColorId = env->GetFieldID(polylineClass, "color", "I"); + if (polylineColorId == nullptr) { + env->ExceptionDescribe(); + return JNI_ERR; + } + + polylineWidthId = env->GetFieldID(polylineClass, "width", "F"); + if (polylineWidthId == nullptr) { + env->ExceptionDescribe(); + return JNI_ERR; + } + latLngZoomClass = env->FindClass("com/mapbox/mapboxgl/geometry/LatLngZoom"); if (latLngZoomClass == nullptr) { env->ExceptionDescribe(); |