diff options
Diffstat (limited to 'platform/android/src/geojson/point.cpp')
-rw-r--r-- | platform/android/src/geojson/point.cpp | 41 |
1 files changed, 10 insertions, 31 deletions
diff --git a/platform/android/src/geojson/point.cpp b/platform/android/src/geojson/point.cpp index 69da997250..7fcc183dc1 100644 --- a/platform/android/src/geojson/point.cpp +++ b/platform/android/src/geojson/point.cpp @@ -1,7 +1,4 @@ #include "point.hpp" -#include "../java/util.hpp" -#include "../java_types.hpp" -#include "../style/value.hpp" namespace mbgl { namespace android { @@ -13,37 +10,19 @@ jni::Object<Point> Point::New(jni::JNIEnv& env, const mbgl::Point<double>& point return javaClass.Call(env, method, point.x, point.y); } -mapbox::geojson::point Point::convert(jni::JNIEnv &env, jni::Object<Point> jPoint) { - mapbox::geojson::point point; - - if (jPoint) { - point = Point::convert(env, *jni::SeizeLocal(env, Point::coordinates(env, jPoint))); - } - - return point; -} - -mapbox::geojson::point Point::convert(jni::JNIEnv &env, jni::Object<java::util::List/*<Double>*/> jDoubleList) { - mapbox::geojson::point point; - - if (jDoubleList) { - auto jDoubleArray = jni::SeizeLocal(env, java::util::List::toArray<jobject>(env, jDoubleList)); - - auto lonObject = jni::SeizeLocal(env, jDoubleArray->Get(env, 0)); - auto latObject = jni::SeizeLocal(env, jDoubleArray->Get(env, 1)); +mbgl::Point<double> Point::convert(jni::JNIEnv &env, jni::Object<Point> jPoint) { + static auto javaClass = jni::Class<Point>::Singleton(env); + static auto longitude = javaClass.GetMethod<jni::jdouble ()>(env, "longitude"); + static auto latitude = javaClass.GetMethod<jni::jdouble ()>(env, "latitude"); - point.x = jni::CallMethod<jni::jdouble>(env, *lonObject, - *java::Number::doubleValueMethodId); - point.y = jni::CallMethod<jni::jdouble>(env, *latObject, - *java::Number::doubleValueMethodId); + if (!jPoint) { + return {}; } - return point; -} -jni::Object<java::util::List> Point::coordinates(jni::JNIEnv &env, jni::Object<Point> jPoint) { - static auto javaClass = jni::Class<Point>::Singleton(env); - static auto method = javaClass.GetMethod<jni::Object<java::util::List> ()>(env, "coordinates"); - return jPoint.Call(env, method); + return { + jPoint.Call(env, longitude), + jPoint.Call(env, latitude) + }; } void Point::registerNative(jni::JNIEnv &env) { |