From 553ec88dc0350b9b034a0370300653d94f092382 Mon Sep 17 00:00:00 2001 From: Tobrun Date: Wed, 19 Apr 2017 15:05:08 +0200 Subject: [android] - expose source layer identifier (#8709) --- platform/android/src/style/layers/layer.cpp | 20 ++++++++++++++++++++ platform/android/src/style/layers/layer.hpp | 6 ++++-- platform/android/src/style/layers/layer.hpp.ejs | 1 - 3 files changed, 24 insertions(+), 3 deletions(-) (limited to 'platform/android/src') diff --git a/platform/android/src/style/layers/layer.cpp b/platform/android/src/style/layers/layer.cpp index 6c9de51a0d..58c0c5ee84 100644 --- a/platform/android/src/style/layers/layer.cpp +++ b/platform/android/src/style/layers/layer.cpp @@ -144,6 +144,25 @@ namespace android { } } + jni::String Layer::getSourceLayer(jni::JNIEnv& env) { + using namespace mbgl::style; + + std::string sourceLayerId; + if (layer.is()) { + sourceLayerId = layer.as()->getSourceLayer(); + } else if (layer.is()) { + sourceLayerId = layer.as()->getSourceLayer(); + } else if (layer.is()) { + sourceLayerId = layer.as()->getSourceLayer(); + } else if (layer.is()) { + sourceLayerId = layer.as()->getSourceLayer(); + } else { + mbgl::Log::Warning(mbgl::Event::JNI, "Layer doesn't support source layer"); + } + + return jni::Make(env, sourceLayerId); + } + jni::jfloat Layer::getMinZoom(jni::JNIEnv&){ return layer.getMinZoom(); } @@ -180,6 +199,7 @@ namespace android { METHOD(&Layer::setPaintProperty, "nativeSetPaintProperty"), METHOD(&Layer::setFilter, "nativeSetFilter"), METHOD(&Layer::setSourceLayer, "nativeSetSourceLayer"), + METHOD(&Layer::getSourceLayer, "nativeGetSourceLayer"), METHOD(&Layer::getMinZoom, "nativeGetMinZoom"), METHOD(&Layer::getMaxZoom, "nativeGetMaxZoom"), METHOD(&Layer::setMinZoom, "nativeSetMinZoom"), diff --git a/platform/android/src/style/layers/layer.hpp b/platform/android/src/style/layers/layer.hpp index deea7a6613..78c3f80b48 100644 --- a/platform/android/src/style/layers/layer.hpp +++ b/platform/android/src/style/layers/layer.hpp @@ -66,9 +66,11 @@ public: /* common properties, but not shared by all */ - void setFilter(jni::JNIEnv& env, jni::Array> jfilter); + void setFilter(jni::JNIEnv&, jni::Array>); - void setSourceLayer(jni::JNIEnv& env, jni::String sourceLayer); + void setSourceLayer(jni::JNIEnv&, jni::String); + + jni::String getSourceLayer(jni::JNIEnv&); // Property getters diff --git a/platform/android/src/style/layers/layer.hpp.ejs b/platform/android/src/style/layers/layer.hpp.ejs index d1e84ac2d4..837049b4c3 100644 --- a/platform/android/src/style/layers/layer.hpp.ejs +++ b/platform/android/src/style/layers/layer.hpp.ejs @@ -44,7 +44,6 @@ public: jni::Object get<%- camelize(property.name) %>Transition(jni::JNIEnv&); <% } -%> <% } -%> - jni::jobject* createJavaPeer(jni::JNIEnv&); }; // class <%- camelize(type) %>Layer -- cgit v1.2.1