#include "constant.hpp" #include "collection.hpp" #include "../style/formatted.hpp" #include #include namespace mbgl { namespace android { namespace conversion { Result>> Converter>, bool>::operator()(jni::JNIEnv& env, const bool& value) const { return jni::Box(env, value ? jni::jni_true : jni::jni_false); } Result>> Converter>, float>::operator()(jni::JNIEnv& env, const float& value) const { return jni::Box(env, value); } Result>> Converter>, double>::operator()(jni::JNIEnv& env, const double& value) const { return jni::Box(env, value); } Result>> Converter>, std::string>::operator()( jni::JNIEnv& env, const std::string& value) const { return jni::Make(env, value); } Result>> Converter>, Color>::operator()(jni::JNIEnv& env, const Color& value) const { return jni::Make(env, value.stringify()); } Result>> Converter>, Padding>::operator()( jni::JNIEnv& env, const Padding& value) const { const auto values = value.toArray(); auto result = jni::Array::New(env, values.size()); for (size_t i = 0; i < values.size(); i++) { result.Set(env, i, jni::Box(env, values[i])); } return result; } Result>> Converter>, VariableAnchorOffsetCollection>::operator()( jni::JNIEnv& env, const VariableAnchorOffsetCollection& value) const { auto variableAnchorOffsets = jni::Array>::New(env, value.size() * 2); for (std::size_t i = 0; i < value.size(); i++) { auto anchorOffsetPair = value[i]; auto anchorType = jni::Make(env, Enum::toString(anchorOffsetPair.anchorType)); auto offset = jni::Array::New(env, anchorOffsetPair.offset.size()); for (size_t j = 0; j < anchorOffsetPair.offset.size(); j++) { offset.Set(env, j, jni::Box(env, anchorOffsetPair.offset[j])); } variableAnchorOffsets.Set(env, i, anchorType); variableAnchorOffsets.Set(env, i + 1, offset); } return variableAnchorOffsets; } Result>> Converter>, style::expression::Formatted>::operator()( jni::JNIEnv& env, const style::expression::Formatted& value) const { return Formatted::New(env, value); } Result>> Converter>, std::vector>::operator()( jni::JNIEnv& env, const std::vector& value) const { auto result = jni::Array::New(env, value.size()); for (std::size_t i = 0; i < value.size(); i++) { result.Set(env, i, jni::Make(env, value.at(i))); } return result; } Result>> Converter>, std::vector>::operator()( jni::JNIEnv& env, const std::vector& value) const { auto result = jni::Array::New(env, value.size()); for (std::size_t i = 0; i < value.size(); i++) { result.Set(env, i, jni::Box(env, value.at(i))); } return result; } Result>> Converter>, std::vector>::operator()( jni::JNIEnv& env, const std::vector& value) const { auto result = jni::Array::New(env, value.size()); for (std::size_t i = 0; i < value.size(); i++) { result.Set(env, i, jni::Box(env, value.at(i))); } return result; } Result>> Converter>, style::expression::Image>::operator()( jni::JNIEnv& env, const style::expression::Image& value) const { return jni::Make(env, value.id()); } Result>> Converter>, mbgl::style::Rotation>::operator()( jni::JNIEnv& env, const mbgl::style::Rotation& value) const { return jni::Box(env, value.getAngle()); } } // namespace conversion } // namespace android } // namespace mbgl