diff options
Diffstat (limited to 'platform/android/src/style/layers/layer.cpp')
-rw-r--r-- | platform/android/src/style/layers/layer.cpp | 33 |
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") ); } |