summaryrefslogtreecommitdiff
path: root/platform/android/src/style/layers/layer.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/android/src/style/layers/layer.cpp')
-rw-r--r--platform/android/src/style/layers/layer.cpp59
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