diff options
Diffstat (limited to 'platform/android/src/style/position.cpp')
-rw-r--r-- | platform/android/src/style/position.cpp | 19 |
1 files changed, 10 insertions, 9 deletions
diff --git a/platform/android/src/style/position.cpp b/platform/android/src/style/position.cpp index 0bbcefcbcd..c6918a2e9a 100644 --- a/platform/android/src/style/position.cpp +++ b/platform/android/src/style/position.cpp @@ -4,29 +4,30 @@ 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); + 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"); + 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"); + 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"); + static auto javaClass = jni::Class<Position>::Singleton(env); + static auto field = javaClass.GetField<jfloat>(env, "polarAngle"); return position.Get(env, field); } |