summaryrefslogtreecommitdiff
path: root/platform/android/src/native_map_view.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/native_map_view.cpp')
-rwxr-xr-xplatform/android/src/native_map_view.cpp17
1 files changed, 17 insertions, 0 deletions
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp
index ddc5447347..af1473ca34 100755
--- a/platform/android/src/native_map_view.cpp
+++ b/platform/android/src/native_map_view.cpp
@@ -799,6 +799,22 @@ void NativeMapView::removeLayer(JNIEnv&, jlong layerPtr) {
}
}
+jni::Array<jni::Object<Source>> NativeMapView::getSources(JNIEnv& env) {
+ // Get the core sources
+ std::vector<style::Source*> sources = map->getSources();
+
+ // Convert
+ jni::Array<jni::Object<Source>> jSources = jni::Array<jni::Object<Source>>::New(env, sources.size(), Source::javaClass);
+ int index = 0;
+ for (auto source : sources) {
+ auto jSource = jni::Object<Source>(createJavaSourcePeer(env, *map, *source));
+ jSources.Set(env, index, jSource);
+ jni::DeleteLocalRef(env, jSource);
+ index++;
+ }
+
+ return jSources;
+}
jni::Object<Source> NativeMapView::getSource(JNIEnv& env, jni::String sourceId) {
// Find the source
@@ -1356,6 +1372,7 @@ void NativeMapView::registerNative(jni::JNIEnv& env) {
METHOD(&NativeMapView::addLayer, "nativeAddLayer"),
METHOD(&NativeMapView::removeLayerById, "nativeRemoveLayerById"),
METHOD(&NativeMapView::removeLayer, "nativeRemoveLayer"),
+ METHOD(&NativeMapView::getSources, "nativeGetSources"),
METHOD(&NativeMapView::getSource, "nativeGetSource"),
METHOD(&NativeMapView::addSource, "nativeAddSource"),
METHOD(&NativeMapView::removeSourceById, "nativeRemoveSourceById"),