summaryrefslogtreecommitdiff
path: root/platform/android/src/style/sources/image_source.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/style/sources/image_source.cpp')
-rw-r--r--platform/android/src/style/sources/image_source.cpp27
1 files changed, 13 insertions, 14 deletions
diff --git a/platform/android/src/style/sources/image_source.cpp b/platform/android/src/style/sources/image_source.cpp
index 278564485d..b42e0e5a51 100644
--- a/platform/android/src/style/sources/image_source.cpp
+++ b/platform/android/src/style/sources/image_source.cpp
@@ -15,7 +15,7 @@
namespace mbgl {
namespace android {
- ImageSource::ImageSource(jni::JNIEnv& env, jni::String sourceId, jni::Object<LatLngQuad> coordinatesObject)
+ ImageSource::ImageSource(jni::JNIEnv& env, const jni::String& sourceId, const jni::Object<LatLngQuad>& coordinatesObject)
: Source(env, std::make_unique<mbgl::style::ImageSource>(
jni::Make<std::string>(env, sourceId),
LatLngQuad::getLatLngArray(env, coordinatesObject)
@@ -31,42 +31,41 @@ namespace android {
ImageSource::~ImageSource() = default;
- void ImageSource::setURL(jni::JNIEnv& env, jni::String url) {
+ void ImageSource::setURL(jni::JNIEnv& env, const jni::String& url) {
// Update the core source
source.as<mbgl::style::ImageSource>()->ImageSource::setURL(jni::Make<std::string>(env, url));
}
- jni::String ImageSource::getURL(jni::JNIEnv& env) {
+ jni::Local<jni::String> ImageSource::getURL(jni::JNIEnv& env) {
optional<std::string> url = source.as<mbgl::style::ImageSource>()->ImageSource::getURL();
- return url ? jni::Make<jni::String>(env, *url) : jni::String();
+ return url ? jni::Make<jni::String>(env, *url) : jni::Local<jni::String>();
}
- void ImageSource::setImage(jni::JNIEnv& env, jni::Object<Bitmap> bitmap) {
+ void ImageSource::setImage(jni::JNIEnv& env, const jni::Object<Bitmap>& bitmap) {
source.as<mbgl::style::ImageSource>()->setImage(Bitmap::GetImage(env, bitmap));
}
- void ImageSource::setCoordinates(jni::JNIEnv& env, jni::Object<LatLngQuad> coordinatesObject) {
+ void ImageSource::setCoordinates(jni::JNIEnv& env, const jni::Object<LatLngQuad>& coordinatesObject) {
source.as<mbgl::style::ImageSource>()->setCoordinates(
LatLngQuad::getLatLngArray(env, coordinatesObject));
}
- jni::Class<ImageSource> ImageSource::javaClass;
-
- jni::Object<Source> ImageSource::createJavaPeer(jni::JNIEnv& env) {
- static auto constructor = ImageSource::javaClass.template GetConstructor<jni::jlong>(env);
- return jni::Object<Source>(ImageSource::javaClass.New(env, constructor, reinterpret_cast<jni::jlong>(this)).Get());
+ jni::Local<jni::Object<Source>> ImageSource::createJavaPeer(jni::JNIEnv& env) {
+ static auto& javaClass = jni::Class<ImageSource>::Singleton(env);
+ static auto constructor = javaClass.GetConstructor<jni::jlong>(env);
+ return javaClass.New(env, constructor, reinterpret_cast<jni::jlong>(this));
}
void ImageSource::registerNative(jni::JNIEnv& env) {
// Lookup the class
- ImageSource::javaClass = *jni::Class<ImageSource>::Find(env).NewGlobalRef(env).release();
+ static auto& javaClass = jni::Class<ImageSource>::Singleton(env);
#define METHOD(MethodPtr, name) jni::MakeNativePeerMethod<decltype(MethodPtr), (MethodPtr)>(name)
// Register the peer
jni::RegisterNativePeer<ImageSource>(
- env, ImageSource::javaClass, "nativePtr",
- std::make_unique<ImageSource, JNIEnv&, jni::String, jni::Object<LatLngQuad>>,
+ env, javaClass, "nativePtr",
+ jni::MakePeer<ImageSource, const jni::String&, const jni::Object<LatLngQuad>&>,
"initialize",
"finalize",
METHOD(&ImageSource::setURL, "nativeSetUrl"),