From 53c3c327f0ebea276d977f58a59cdb9449165518 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Fri, 17 Aug 2018 13:43:07 -0700 Subject: [android] Upgrade to latest jni.hpp --- platform/android/src/style/light.cpp | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'platform/android/src/style/light.cpp') diff --git a/platform/android/src/style/light.cpp b/platform/android/src/style/light.cpp index 71f1cb076e..64afb89204 100644 --- a/platform/android/src/style/light.cpp +++ b/platform/android/src/style/light.cpp @@ -23,11 +23,10 @@ jni::jobject* Light::createJavaLightPeer(jni::JNIEnv& env, Map& map, mbgl::style return result; } -jni::Class Light::javaClass; - jni::jobject* Light::createJavaPeer(jni::JNIEnv& env) { - static auto constructor = Light::javaClass.template GetConstructor(env); - return Light::javaClass.New(env, constructor, reinterpret_cast(this)); + static auto javaClass = jni::Class::Singleton(env); + static auto constructor = javaClass.GetConstructor(env); + return javaClass.New(env, constructor, reinterpret_cast(this)); } void Light::setAnchor(jni::JNIEnv& env, jni::String property) { @@ -121,11 +120,11 @@ void Light::setIntensityTransition(jni::JNIEnv&, jlong duration, jlong delay) { void Light::registerNative(jni::JNIEnv& env) { // Lookup the class - Light::javaClass = *jni::Class::Find(env).NewGlobalRef(env).release(); + static auto javaClass = jni::Class::Singleton(env); #define METHOD(MethodPtr, name) jni::MakeNativePeerMethod(name) // Register the peer - jni::RegisterNativePeer(env, Light::javaClass, "nativePtr", + jni::RegisterNativePeer(env, javaClass, "nativePtr", METHOD(&Light::getAnchor, "nativeGetAnchor"), METHOD(&Light::setAnchor, "nativeSetAnchor"), METHOD(&Light::getPositionTransition, "nativeGetPositionTransition"), -- cgit v1.2.1 From 79bf0e8af6bf9ec829a352d56b8e70ccc8f4fa41 Mon Sep 17 00:00:00 2001 From: John Firebaugh Date: Wed, 22 Aug 2018 12:27:43 -0700 Subject: [android] jni.hpp 4.0.0 --- platform/android/src/style/light.cpp | 38 +++++++++++++++++------------------- 1 file changed, 18 insertions(+), 20 deletions(-) (limited to 'platform/android/src/style/light.cpp') diff --git a/platform/android/src/style/light.cpp b/platform/android/src/style/light.cpp index 64afb89204..d8ed4d9d96 100644 --- a/platform/android/src/style/light.cpp +++ b/platform/android/src/style/light.cpp @@ -1,5 +1,3 @@ -// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`. - #include #include "light.hpp" #include "conversion/transition_options.hpp" @@ -16,20 +14,20 @@ static Light* initializeLightPeer(mbgl::Map& map, mbgl::style::Light& coreLight) return new Light(map, coreLight); } -jni::jobject* Light::createJavaLightPeer(jni::JNIEnv& env, Map& map, mbgl::style::Light& coreLight) { +jni::Local> Light::createJavaLightPeer(jni::JNIEnv& env, Map& map, mbgl::style::Light& coreLight) { std::unique_ptr peerLight = std::unique_ptr(initializeLightPeer(map, coreLight)); - jni::jobject* result = peerLight->createJavaPeer(env); + auto result = peerLight->createJavaPeer(env); peerLight.release(); return result; } -jni::jobject* Light::createJavaPeer(jni::JNIEnv& env) { - static auto javaClass = jni::Class::Singleton(env); +jni::Local> Light::createJavaPeer(jni::JNIEnv& env) { + static auto& javaClass = jni::Class::Singleton(env); static auto constructor = javaClass.GetConstructor(env); return javaClass.New(env, constructor, reinterpret_cast(this)); } -void Light::setAnchor(jni::JNIEnv& env, jni::String property) { +void Light::setAnchor(jni::JNIEnv& env, const jni::String& property) { std::string anchorStr = jni::Make(env, property); if (anchorStr.compare("map") == 0) { light.setAnchor(LightAnchorType::Map); @@ -38,7 +36,7 @@ void Light::setAnchor(jni::JNIEnv& env, jni::String property) { } } -jni::String Light::getAnchor(jni::JNIEnv& env) { +jni::Local Light::getAnchor(jni::JNIEnv& env) { auto anchorType = light.getAnchor(); if (anchorType == LightAnchorType::Map) { return jni::Make(env, "map"); @@ -47,22 +45,22 @@ jni::String Light::getAnchor(jni::JNIEnv& env) { } } -void Light::setPosition(jni::JNIEnv& env, jni::Object jposition) { +void Light::setPosition(jni::JNIEnv& env, const jni::Object& jposition) { using namespace mbgl::android::conversion; auto position = *convert(env, jposition); light.setPosition(position); } -jni::Object Light::getPosition(jni::JNIEnv& env) { +jni::Local> Light::getPosition(jni::JNIEnv& env) { using namespace mbgl::android::conversion; mbgl::style::Position position = light.getPosition().asConstant(); - return *convert>(env, position); + return std::move(*convert>>(env, position)); } -jni::Object Light::getPositionTransition(jni::JNIEnv& env) { +jni::Local> Light::getPositionTransition(jni::JNIEnv& env) { using namespace mbgl::android::conversion; mbgl::style::TransitionOptions options = light.getPositionTransition(); - return *convert>(env, options); + return std::move(*convert>>(env, options)); } void Light::setPositionTransition(jni::JNIEnv&, jlong duration, jlong delay) { @@ -72,22 +70,22 @@ void Light::setPositionTransition(jni::JNIEnv&, jlong duration, jlong delay) { light.setPositionTransition(options); } -void Light::setColor(jni::JNIEnv& env, jni::String property) { +void Light::setColor(jni::JNIEnv& env, const jni::String& property) { auto color = Color::parse(jni::Make(env, property)); if (color) { light.setColor(color.value()); } } -jni::String Light::getColor(jni::JNIEnv &env) { +jni::Local Light::getColor(jni::JNIEnv &env) { auto color = light.getColor().asConstant(); return jni::Make(env, color.stringify()); } -jni::Object Light::getColorTransition(jni::JNIEnv& env) { +jni::Local> Light::getColorTransition(jni::JNIEnv& env) { using namespace mbgl::android::conversion; mbgl::style::TransitionOptions options = light.getColorTransition(); - return *convert>(env, options); + return std::move(*convert>>(env, options)); } void Light::setColorTransition(jni::JNIEnv&, jlong duration, jlong delay) { @@ -105,10 +103,10 @@ jni::jfloat Light::getIntensity(jni::JNIEnv&) { return light.getIntensity().asConstant(); } -jni::Object Light::getIntensityTransition(jni::JNIEnv& env) { +jni::Local> Light::getIntensityTransition(jni::JNIEnv& env) { using namespace mbgl::android::conversion; mbgl::style::TransitionOptions options = light.getIntensityTransition(); - return *convert>(env, options); + return std::move(*convert>>(env, options)); } void Light::setIntensityTransition(jni::JNIEnv&, jlong duration, jlong delay) { @@ -120,7 +118,7 @@ void Light::setIntensityTransition(jni::JNIEnv&, jlong duration, jlong delay) { void Light::registerNative(jni::JNIEnv& env) { // Lookup the class - static auto javaClass = jni::Class::Singleton(env); + static auto& javaClass = jni::Class::Singleton(env); #define METHOD(MethodPtr, name) jni::MakeNativePeerMethod(name) // Register the peer -- cgit v1.2.1