diff options
Diffstat (limited to 'platform/android/src/style/conversion/function.hpp')
-rw-r--r-- | platform/android/src/style/conversion/function.hpp | 13 |
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) }; } }; |