#include "feature_collection.hpp" #include "feature.hpp" namespace mbgl { namespace android { namespace geojson { mbgl::FeatureCollection FeatureCollection::convert(jni::JNIEnv& env, jni::Object jCollection) { auto jFeatureList = FeatureCollection::features(env, jCollection); auto jFeatures = java::util::List::toArray(env, jFeatureList); auto size = size_t(jFeatures.Length(env)); auto collection = mbgl::FeatureCollection(); collection.reserve(size); for (size_t i = 0; i < size; i++) { auto jFeature = jFeatures.Get(env, i); collection.push_back(Feature::convert(env, jFeature)); jni::DeleteLocalRef(env, jFeature); } return collection; } jni::Object FeatureCollection::features(jni::JNIEnv& env, jni::Object jCollection) { static auto method = FeatureCollection::javaClass.GetMethod ()>(env, "features"); return jCollection.Call(env, method); } void FeatureCollection::registerNative(jni::JNIEnv& env) { // Lookup the class javaClass = *jni::Class::Find(env).NewGlobalRef(env).release(); } jni::Class FeatureCollection::javaClass; } // namespace geojson } // namespace android } // namespace mbgl