summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Hallahan <nick@theoutpost.io>2015-07-15 18:08:23 -0700
committerNicholas Hallahan <nick@theoutpost.io>2015-07-15 18:08:23 -0700
commit062a942c462a04c729907365ab7b0fc025d5683d (patch)
treee888db56bbe276a8bf8def58a49aeada6b91034a
parent8107501edb90ee3a971744ea2c3e568787b1a3b6 (diff)
downloadqtlocation-mapboxgl-062a942c462a04c729907365ab7b0fc025d5683d.tar.gz
JNI - getting all of the primitives from Polyline #1716
-rw-r--r--android/cpp/jni.cpp47
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();