diff options
Diffstat (limited to 'platform/android/src/geometry/lat_lng_bounds.cpp')
-rw-r--r-- | platform/android/src/geometry/lat_lng_bounds.cpp | 24 |
1 files changed, 11 insertions, 13 deletions
diff --git a/platform/android/src/geometry/lat_lng_bounds.cpp b/platform/android/src/geometry/lat_lng_bounds.cpp index 827ee52e9..d76ff5b36 100644 --- a/platform/android/src/geometry/lat_lng_bounds.cpp +++ b/platform/android/src/geometry/lat_lng_bounds.cpp @@ -3,16 +3,18 @@ namespace mbgl { namespace android { -jni::Object<LatLngBounds> LatLngBounds::New(jni::JNIEnv& env, mbgl::LatLngBounds bounds) { - static auto constructor = LatLngBounds::javaClass.GetConstructor<double, double, double, double>(env); - return LatLngBounds::javaClass.New(env, constructor, bounds.north(), bounds.east(), bounds.south(), bounds.west()); +jni::Local<jni::Object<LatLngBounds>> LatLngBounds::New(jni::JNIEnv& env, mbgl::LatLngBounds bounds) { + static auto& javaClass = jni::Class<LatLngBounds>::Singleton(env); + static auto constructor = javaClass.GetConstructor<double, double, double, double>(env); + return javaClass.New(env, constructor, bounds.north(), bounds.east(), bounds.south(), bounds.west()); } -mbgl::LatLngBounds LatLngBounds::getLatLngBounds(jni::JNIEnv& env, jni::Object<LatLngBounds> bounds) { - static auto swLatField = LatLngBounds::javaClass.GetField<jni::jdouble>(env, "latitudeSouth"); - static auto swLonField = LatLngBounds::javaClass.GetField<jni::jdouble>(env, "longitudeWest"); - static auto neLatField = LatLngBounds::javaClass.GetField<jni::jdouble>(env, "latitudeNorth"); - static auto neLonField = LatLngBounds::javaClass.GetField<jni::jdouble>(env, "longitudeEast"); +mbgl::LatLngBounds LatLngBounds::getLatLngBounds(jni::JNIEnv& env, const jni::Object<LatLngBounds>& bounds) { + static auto& javaClass = jni::Class<LatLngBounds>::Singleton(env); + static auto swLatField = javaClass.GetField<jni::jdouble>(env, "latitudeSouth"); + static auto swLonField = javaClass.GetField<jni::jdouble>(env, "longitudeWest"); + static auto neLatField = javaClass.GetField<jni::jdouble>(env, "latitudeNorth"); + static auto neLonField = javaClass.GetField<jni::jdouble>(env, "longitudeEast"); mbgl::LatLng sw = { bounds.Get(env, swLatField), bounds.Get(env, swLonField) }; mbgl::LatLng ne = { bounds.Get(env, neLatField), bounds.Get(env, neLonField) }; @@ -23,12 +25,8 @@ mbgl::LatLngBounds LatLngBounds::getLatLngBounds(jni::JNIEnv& env, jni::Object<L } void LatLngBounds::registerNative(jni::JNIEnv& env) { - // Lookup the class - LatLngBounds::javaClass = *jni::Class<LatLngBounds>::Find(env).NewGlobalRef(env).release(); + jni::Class<LatLngBounds>::Singleton(env); } -jni::Class<LatLngBounds> LatLngBounds::javaClass; - - } // namespace android } // namespace mbgl
\ No newline at end of file |