#include "collection.hpp" #include "constant.hpp" namespace mbgl { namespace android { namespace conversion { std::vector toVector(JNIEnv& env, jni::Array array) { std::size_t len = array.Length(env); std::vector vector; vector.reserve(len); for (std::size_t i = 0; i < len; i++) { jni::String jstr = array.Get(env, i); vector.push_back(*convert(env, jstr)); jni::DeleteLocalRef(env, jstr); } return vector; } jni::Array toArray(JNIEnv& env, const std::vector& vector) { static auto clazz = *jni::Class::Find(env).NewGlobalRef(env).release(); auto result = jni::Array::New(env, vector.size(), clazz); std::size_t index = 0; for (auto&& item : vector) { auto element = jni::Make(env, item); result.Set(env, index, element); DeleteLocalRef(env, element); index++; } return result; } } } }