summaryrefslogtreecommitdiff
path: root/platform/android/src/jni/collection.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/jni/collection.hpp')
-rw-r--r--platform/android/src/jni/collection.hpp26
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;
+}
+
+}