summaryrefslogtreecommitdiff
path: root/platform/android/src/style/conversion/function.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/style/conversion/function.hpp')
-rw-r--r--platform/android/src/style/conversion/function.hpp13
1 files changed, 7 insertions, 6 deletions
diff --git a/platform/android/src/style/conversion/function.hpp b/platform/android/src/style/conversion/function.hpp
index ad01a7afc2..41382bc189 100644
--- a/platform/android/src/style/conversion/function.hpp
+++ b/platform/android/src/style/conversion/function.hpp
@@ -12,7 +12,7 @@
#include "../functions/interval_stops.hpp"
#include <jni/jni.hpp>
-
+#include "json.hpp"
#include <tuple>
#include <map>
@@ -183,11 +183,12 @@ struct Converter<jni::jobject*, mbgl::style::SourceFunction<T>> {
Result<jni::jobject*> operator()(jni::JNIEnv& env, const mbgl::style::SourceFunction<T>& value) const {
static jni::jclass* clazz = jni::NewGlobalRef(env, &jni::FindClass(env, "com/mapbox/mapboxsdk/style/functions/SourceFunction")).release();
static jni::jmethodID* constructor = &jni::GetMethodID(env, *clazz, "<init>",
- "(Ljava/lang/Object;Ljava/lang/String;Lcom/mapbox/mapboxsdk/style/functions/stops/Stops;)V");
+ "(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V");
- // Convert stops
- StopsEvaluator<T> evaluator(env);
- jni::jobject* stops = apply_visitor(evaluator, value.stops);
+ // Convert expressions
+ mbgl::Value expressionValue = value.getExpression().serialize();
+ JsonEvaluator jsonEvaluator{env};
+ jni::jobject* converted = apply_visitor(jsonEvaluator, expressionValue);
// Convert default value
jni::jobject* defaultValue = nullptr;
@@ -195,7 +196,7 @@ struct Converter<jni::jobject*, mbgl::style::SourceFunction<T>> {
defaultValue = *convert<jni::jobject*>(env, *value.defaultValue);
}
- return { &jni::NewObject(env, *clazz, *constructor, defaultValue, jni::Make<jni::String>(env, value.property).Get(), stops) };
+ return { &jni::NewObject(env, *clazz, *constructor, defaultValue, jni::Make<jni::String>(env, value.property).Get(), converted) };
}
};