diff options
Diffstat (limited to 'platform/android/src/jni/collection.hpp')
-rw-r--r-- | platform/android/src/jni/collection.hpp | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/platform/android/src/jni/collection.hpp b/platform/android/src/jni/collection.hpp new file mode 100644 index 0000000000..5f94ec29ce --- /dev/null +++ b/platform/android/src/jni/collection.hpp @@ -0,0 +1,26 @@ +#pragma once + +#include <jni/jni.hpp> + +#include <string> +#include <vector> + +namespace jni { + +inline Array<String> MakeAnything(ThingToMake<Array<String>>, JNIEnv& env, const std::vector<std::string>& vector) +{ + static auto clazz = *Class<StringTag>::Find(env).NewGlobalRef(env).release(); + auto result = Array<String>::New(env, vector.size(), clazz); + + std::size_t index = 0; + for (auto&& item : vector) { + auto element = Make<jni::String>(env, item); + result.Set(env, index, element); + DeleteLocalRef(env, element); + index++; + } + + return result; +} + +} |