diff options
Diffstat (limited to 'platform/android/src/style/layers/layer.cpp')
-rw-r--r-- | platform/android/src/style/layers/layer.cpp | 27 |
1 files changed, 24 insertions, 3 deletions
diff --git a/platform/android/src/style/layers/layer.cpp b/platform/android/src/style/layers/layer.cpp index 3c1fc0af62..c0c57c839d 100644 --- a/platform/android/src/style/layers/layer.cpp +++ b/platform/android/src/style/layers/layer.cpp @@ -3,7 +3,7 @@ #include <jni/jni.hpp> -#include <mbgl/platform/log.hpp> +#include <mbgl/util/logging.hpp> //Java -> C++ conversion #include <mbgl/style/conversion.hpp> @@ -32,8 +32,21 @@ namespace android { Layer::~Layer() { } - jni::String Layer::getId(jni::JNIEnv& env) { - return jni::Make<jni::String>(env, layer.getID()); + void Layer::addToMap(mbgl::Map& _map, mbgl::optional<std::string> before) { + //Check to see if we own the layer first + if (!ownedLayer) { + throw std::runtime_error("Cannot add layer twice"); + } + + //Add layer to map + _map.addLayer(releaseCoreLayer(), before); + + //Save pointer to the map + this->map = &_map; + } + + void Layer::setLayer(std::unique_ptr<mbgl::style::Layer> sourceLayer) { + this->ownedLayer = std::move(sourceLayer); } std::unique_ptr<mbgl::style::Layer> Layer::releaseCoreLayer() { @@ -41,6 +54,14 @@ namespace android { return std::move(ownedLayer); } + jni::String Layer::getId(jni::JNIEnv& env) { + return jni::Make<jni::String>(env, layer.getID()); + } + + style::Layer& Layer::get() { + return layer; + } + void Layer::setLayoutProperty(jni::JNIEnv& env, jni::String jname, jni::Object<> jvalue) { Value value(env, jvalue); |