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.cpp33
1 files changed, 32 insertions, 1 deletions
diff --git a/platform/android/src/style/layers/layer.cpp b/platform/android/src/style/layers/layer.cpp
index 2f335b6ff3..ee8949328d 100644
--- a/platform/android/src/style/layers/layer.cpp
+++ b/platform/android/src/style/layers/layer.cpp
@@ -91,7 +91,19 @@ namespace android {
return layer;
}
+ void Layer::setDetached(jni::JNIEnv&) {
+ detached = true;
+ }
+
+ jboolean Layer::isDetached(jni::JNIEnv&) {
+ return detached ? jni::jni_true : jni::jni_false;
+ }
+
void Layer::setLayoutProperty(jni::JNIEnv& env, const jni::String& jname, const jni::Object<>& jvalue) {
+ if (detached) {
+ return;
+ }
+
// Convert and set property
optional<mbgl::style::conversion::Error> error = layer.setLayoutProperty(jni::Make<std::string>(env, jname), Value(env, jvalue));
if (error) {
@@ -101,6 +113,10 @@ namespace android {
}
void Layer::setPaintProperty(jni::JNIEnv& env, const jni::String& jname, const jni::Object<>& jvalue) {
+ if (detached) {
+ return;
+ }
+
// Convert and set property
optional<mbgl::style::conversion::Error> error = layer.setPaintProperty(jni::Make<std::string>(env, jname), Value(env, jvalue));
if (error) {
@@ -110,6 +126,10 @@ namespace android {
}
void Layer::setFilter(jni::JNIEnv& env, const jni::Array<jni::Object<>>& jfilter) {
+ if (detached) {
+ return;
+ }
+
using namespace mbgl::style;
using namespace mbgl::style::conversion;
@@ -137,6 +157,9 @@ namespace android {
}
void Layer::setSourceLayer(jni::JNIEnv& env, const jni::String& sourceLayer) {
+ if (detached) {
+ return;
+ }
layer.setSourceLayer(jni::Make<std::string>(env, sourceLayer));
}
@@ -157,10 +180,16 @@ namespace android {
}
void Layer::setMinZoom(jni::JNIEnv&, jni::jfloat zoom) {
+ if (detached) {
+ return;
+ }
layer.setMinZoom(zoom);
}
void Layer::setMaxZoom(jni::JNIEnv&, jni::jfloat zoom) {
+ if (detached) {
+ return;
+ }
layer.setMaxZoom(zoom);
}
@@ -189,7 +218,9 @@ namespace android {
METHOD(&Layer::getMaxZoom, "nativeGetMaxZoom"),
METHOD(&Layer::setMinZoom, "nativeSetMinZoom"),
METHOD(&Layer::setMaxZoom, "nativeSetMaxZoom"),
- METHOD(&Layer::getVisibility, "nativeGetVisibility")
+ METHOD(&Layer::getVisibility, "nativeGetVisibility"),
+ METHOD(&Layer::setDetached, "nativeSetDetached"),
+ METHOD(&Layer::isDetached, "nativeIsDetached")
);
}