diff options
author | Tobrun <tobrun@mapbox.com> | 2018-04-10 11:09:42 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-04-10 11:09:42 +0200 |
commit | 44ce5ab08792df5f38560016ed3d41712e8025d0 (patch) | |
tree | 83ff99ff7b811e4f54165058df01eb101750c33e /platform/android/src/style/conversion/function.hpp | |
parent | 351ac83c75955c7e44e49a42156ece83b759612b (diff) | |
download | qtlocation-mapboxgl-44ce5ab08792df5f38560016ed3d41712e8025d0.tar.gz |
Rework expression conversion (#11490)
* [android] - rework expression conversion
Diffstat (limited to 'platform/android/src/style/conversion/function.hpp')
-rw-r--r-- | platform/android/src/style/conversion/function.hpp | 30 |
1 files changed, 11 insertions, 19 deletions
diff --git a/platform/android/src/style/conversion/function.hpp b/platform/android/src/style/conversion/function.hpp index 510efd3c94..d6669b4508 100644 --- a/platform/android/src/style/conversion/function.hpp +++ b/platform/android/src/style/conversion/function.hpp @@ -7,7 +7,8 @@ #include "../../java/lang.hpp" #include <jni/jni.hpp> -#include "gson.hpp" +#include "../../gson/json_element.hpp" + #include <tuple> #include <map> @@ -16,41 +17,32 @@ namespace android { namespace conversion { template <class T> -struct Converter<jni::jobject*, mbgl::style::CameraFunction<T>> { +struct Converter<jni::Object<android::gson::JsonElement>, mbgl::style::CameraFunction<T>> { - Result<jni::jobject*> operator()(jni::JNIEnv& env, const mbgl::style::CameraFunction<T>& value) const { + Result<jni::Object<android::gson::JsonElement>> operator()(jni::JNIEnv& env, const mbgl::style::CameraFunction<T>& value) const { // Convert expressions mbgl::Value expressionValue = value.getExpression().serialize(); - JsonEvaluator jsonEvaluator{env}; - jni::jobject* converted = apply_visitor(jsonEvaluator, expressionValue); - - return converted; + return gson::JsonElement::New(env, expressionValue); } }; template <class T> -struct Converter<jni::jobject*, mbgl::style::SourceFunction<T>> { +struct Converter<jni::Object<android::gson::JsonElement>, mbgl::style::SourceFunction<T>> { - Result<jni::jobject*> operator()(jni::JNIEnv& env, const mbgl::style::SourceFunction<T>& value) const { + Result<jni::Object<android::gson::JsonElement>> operator()(jni::JNIEnv& env, const mbgl::style::SourceFunction<T>& value) const { // Convert expressions mbgl::Value expressionValue = value.getExpression().serialize(); - JsonEvaluator jsonEvaluator{env}; - jni::jobject* converted = apply_visitor(jsonEvaluator, expressionValue); - - return converted; + return gson::JsonElement::New(env, expressionValue); } }; template <class T> -struct Converter<jni::jobject*, mbgl::style::CompositeFunction<T>> { +struct Converter<jni::Object<android::gson::JsonElement>, mbgl::style::CompositeFunction<T>> { - Result<jni::jobject*> operator()(jni::JNIEnv& env, const mbgl::style::CompositeFunction<T>& value) const { + Result<jni::Object<android::gson::JsonElement>> operator()(jni::JNIEnv& env, const mbgl::style::CompositeFunction<T>& value) const { // Convert expressions mbgl::Value expressionValue = value.getExpression().serialize(); - JsonEvaluator jsonEvaluator{env}; - jni::jobject* converted = apply_visitor(jsonEvaluator, expressionValue); - - return converted; + return gson::JsonElement::New(env, expressionValue); } }; |