summaryrefslogtreecommitdiff
path: root/platform/android/src/style/conversion/function.hpp
diff options
context:
space:
mode:
authorTobrun <tobrun@mapbox.com>2018-04-10 11:09:42 +0200
committerGitHub <noreply@github.com>2018-04-10 11:09:42 +0200
commit44ce5ab08792df5f38560016ed3d41712e8025d0 (patch)
tree83ff99ff7b811e4f54165058df01eb101750c33e /platform/android/src/style/conversion/function.hpp
parent351ac83c75955c7e44e49a42156ece83b759612b (diff)
downloadqtlocation-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.hpp30
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);
}
};