diff options
Diffstat (limited to 'platform/android/src/style/position.cpp')
-rw-r--r-- | platform/android/src/style/position.cpp | 27 |
1 files changed, 14 insertions, 13 deletions
diff --git a/platform/android/src/style/position.cpp b/platform/android/src/style/position.cpp index 0bbcefcbcd..20a0c47dff 100644 --- a/platform/android/src/style/position.cpp +++ b/platform/android/src/style/position.cpp @@ -3,30 +3,31 @@ namespace mbgl { namespace android { -jni::Object<Position> Position::fromPosition(jni::JNIEnv& env, jfloat radialCoordinate, jfloat azimuthalAngle, jfloat polarAngle) { - static auto method = Position::javaClass.GetStaticMethod<jni::Object<Position> (jfloat, jfloat, jfloat)>(env, "fromPosition"); - return Position::javaClass.Call(env, method, radialCoordinate, azimuthalAngle, polarAngle); +jni::Local<jni::Object<Position>> Position::fromPosition(jni::JNIEnv& env, jfloat radialCoordinate, jfloat azimuthalAngle, jfloat polarAngle) { + static auto& javaClass = jni::Class<Position>::Singleton(env); + static auto method = javaClass.GetStaticMethod<jni::Object<Position> (jfloat, jfloat, jfloat)>(env, "fromPosition"); + return javaClass.Call(env, method, radialCoordinate, azimuthalAngle, polarAngle); } void Position::registerNative(jni::JNIEnv& env) { - // Lookup the class - Position::javaClass = *jni::Class<Position>::Find(env).NewGlobalRef(env).release(); + jni::Class<Position>::Singleton(env); } -jni::Class<Position> Position::javaClass; - -float Position::getRadialCoordinate(jni::JNIEnv& env, jni::Object<Position> position){ - static auto field = Position::javaClass.GetField<jfloat>(env, "radialCoordinate"); +float Position::getRadialCoordinate(jni::JNIEnv& env, const jni::Object<Position>& position) { + static auto& javaClass = jni::Class<Position>::Singleton(env); + static auto field = javaClass.GetField<jfloat>(env, "radialCoordinate"); return position.Get(env, field); } -float Position::getAzimuthalAngle(jni::JNIEnv& env, jni::Object<Position> position){ - static auto field = Position::javaClass.GetField<jfloat>(env, "azimuthalAngle"); +float Position::getAzimuthalAngle(jni::JNIEnv& env, const jni::Object<Position>& position) { + static auto& javaClass = jni::Class<Position>::Singleton(env); + static auto field = javaClass.GetField<jfloat>(env, "azimuthalAngle"); return position.Get(env, field); } -float Position::getPolarAngle(jni::JNIEnv& env, jni::Object<Position> position){ - static auto field = Position::javaClass.GetField<jfloat>(env, "polarAngle"); +float Position::getPolarAngle(jni::JNIEnv& env, const jni::Object<Position>& position) { + static auto& javaClass = jni::Class<Position>::Singleton(env); + static auto field = javaClass.GetField<jfloat>(env, "polarAngle"); return position.Get(env, field); } |