diff options
Diffstat (limited to 'platform/android/src/style/layers/layer.cpp')
-rw-r--r-- | platform/android/src/style/layers/layer.cpp | 59 |
1 files changed, 36 insertions, 23 deletions
diff --git a/platform/android/src/style/layers/layer.cpp b/platform/android/src/style/layers/layer.cpp index aec7079698..4d5f90f67e 100644 --- a/platform/android/src/style/layers/layer.cpp +++ b/platform/android/src/style/layers/layer.cpp @@ -4,10 +4,15 @@ #include <jni/jni.hpp> #include <mbgl/platform/log.hpp> + +//Java -> C++ conversion #include <mbgl/style/conversion.hpp> #include <mbgl/style/conversion/layer.hpp> #include <mbgl/style/conversion/source.hpp> +//C++ -> Java conversion +#include "../conversion/property_value.hpp" + #include <string> namespace mbgl { @@ -16,19 +21,15 @@ namespace android { /** * Invoked when the construction is initiated from the jvm through a subclass */ - Layer::Layer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> coreLayer) + Layer::Layer(jni::JNIEnv&, std::unique_ptr<mbgl::style::Layer> coreLayer) : ownedLayer(std::move(coreLayer)) , layer(*ownedLayer) { - - mbgl::Log::Debug(mbgl::Event::JNI, "Layer constructed, owning reference"); } Layer::Layer(mbgl::Map& coreMap, mbgl::style::Layer& coreLayer) : layer(coreLayer) , map(&coreMap) { - mbgl::Log::Debug(mbgl::Event::JNI, "Non-owning reference constructor"); } Layer::~Layer() { - mbgl::Log::Debug(mbgl::Event::JNI, "Layer destroyed"); } jni::String Layer::getId(jni::JNIEnv& env) { @@ -41,8 +42,6 @@ namespace android { } void Layer::setLayoutProperty(jni::JNIEnv& env, jni::String jname, jni::Object<> jvalue) { - mbgl::Log::Debug(mbgl::Event::JNI, "Set layout property"); - Value value(env, jvalue); //Convert and set property @@ -51,16 +50,9 @@ namespace android { mbgl::Log::Error(mbgl::Event::JNI, "Error setting property: " + jni::Make<std::string>(env, jname) + " " + error->message); return; } - - //Update the style if attached - if (ownedLayer == nullptr) { - map->update(mbgl::Update::RecalculateStyle); - } } void Layer::setPaintProperty(jni::JNIEnv& env, jni::String jname, jni::Object<> jvalue) { - mbgl::Log::Debug(mbgl::Event::JNI, "Set paint property"); - Value value(env, jvalue); //Convert and set property @@ -72,8 +64,6 @@ namespace android { } void Layer::updateStyle(jni::JNIEnv&, jni::jboolean updateClasses) { - mbgl::Log::Debug(mbgl::Event::JNI, "Update style property. Update classes: " + std::to_string(updateClasses)); - //Update the style only if attached if (ownedLayer == nullptr) { Update flags = mbgl::Update::RecalculateStyle; @@ -89,7 +79,6 @@ namespace android { void Layer::setFilter(jni::JNIEnv& env, jni::Array<jni::Object<>> jfilter) { using namespace mbgl::style; using namespace mbgl::style::conversion; - mbgl::Log::Debug(mbgl::Event::JNI, "Set filter"); Value wrapped(env, jfilter); Filter filter; @@ -118,7 +107,6 @@ namespace android { using namespace mbgl::style; std::string layerId = jni::Make<std::string>(env, sourceLayer); - mbgl::Log::Debug(mbgl::Event::JNI, "Set source layer: " + layerId); if (layer.is<FillLayer>()) { layer.as<FillLayer>()->setSourceLayer(layerId); @@ -133,11 +121,30 @@ namespace android { } } + jni::jfloat Layer::getMinZoom(jni::JNIEnv&){ + return layer.getMinZoom(); + } + + jni::jfloat Layer::getMaxZoom(jni::JNIEnv&) { + return layer.getMaxZoom(); + } + + void Layer::setMinZoom(jni::JNIEnv&, jni::jfloat zoom) { + layer.setMinZoom(zoom); + } + + void Layer::setMaxZoom(jni::JNIEnv&, jni::jfloat zoom) { + layer.setMaxZoom(zoom); + } + + jni::Object<jni::ObjectTag> Layer::getVisibility(jni::JNIEnv& env) { + using namespace mbgl::android::conversion; + return jni::Object<jni::ObjectTag>(*convert<jni::jobject*>(env, layer.getVisibility())); + } + jni::Class<Layer> Layer::javaClass; void Layer::registerNative(jni::JNIEnv& env) { - mbgl::Log::Debug(mbgl::Event::JNI, "Registering native base layer"); - //Lookup the class Layer::javaClass = *jni::Class<Layer>::Find(env).NewGlobalRef(env).release(); @@ -150,9 +157,15 @@ namespace android { METHOD(&Layer::setPaintProperty, "nativeSetPaintProperty"), METHOD(&Layer::updateStyle, "nativeUpdateStyle"), METHOD(&Layer::setFilter, "nativeSetFilter"), - METHOD(&Layer::setSourceLayer, "nativeSetSourceLayer") + METHOD(&Layer::setSourceLayer, "nativeSetSourceLayer"), + METHOD(&Layer::getMinZoom, "nativeGetMinZoom"), + METHOD(&Layer::getMaxZoom, "nativeGetMaxZoom"), + METHOD(&Layer::setMinZoom, "nativeSetMinZoom"), + METHOD(&Layer::setMaxZoom, "nativeSetMaxZoom"), + METHOD(&Layer::getVisibility, "nativeGetVisibility") ); } -} -}
\ No newline at end of file + +} //android +} //mbgl
\ No newline at end of file |