summaryrefslogtreecommitdiff
path: root/platform/android/src/style/layers/layer_manager.hpp
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2018-11-06 11:31:37 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2018-11-07 16:34:20 +0200
commit6f34e69b2e7bfb61ae4a1c88799397f18d4175a3 (patch)
tree82ec7a4e37bea4589466da5447712dfcad13de7b /platform/android/src/style/layers/layer_manager.hpp
parent80ec05cf47feb9f225d46222980d6942b9a4038f (diff)
downloadqtlocation-mapboxgl-6f34e69b2e7bfb61ae4a1c88799397f18d4175a3.tar.gz
[android] layers.cpp/hpp -> layer_manager.cpp/hpp
Diffstat (limited to 'platform/android/src/style/layers/layer_manager.hpp')
-rw-r--r--platform/android/src/style/layers/layer_manager.hpp39
1 files changed, 39 insertions, 0 deletions
diff --git a/platform/android/src/style/layers/layer_manager.hpp b/platform/android/src/style/layers/layer_manager.hpp
new file mode 100644
index 0000000000..7684108555
--- /dev/null
+++ b/platform/android/src/style/layers/layer_manager.hpp
@@ -0,0 +1,39 @@
+#pragma once
+
+#include <mbgl/map/map.hpp>
+#include <mbgl/style/layer.hpp>
+
+#include "layer.hpp"
+
+#include <jni/jni.hpp>
+
+#include <memory>
+#include <vector>
+
+namespace mbgl {
+namespace android {
+
+/**
+ * @brief A singleton class forwarding calls to the corresponding \c JavaLayerPeerFactory instance.
+ */
+class LayerManagerAndroid : public mbgl::style::LayerManager {
+public:
+ ~LayerManagerAndroid() override;
+ static LayerManagerAndroid* get();
+
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&);
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>);
+
+ void registerNative(jni::JNIEnv&);
+
+private:
+ LayerManagerAndroid();
+ JavaLayerPeerFactory* getPeerFactory(mbgl::style::Layer*);
+ // mbgl:style::LayerManager overrides.
+ std::unique_ptr<style::Layer> createLayer(const std::string& type, const std::string& id, const style::conversion::Convertible& value, style::conversion::Error& error) final;
+
+ std::vector<std::unique_ptr<JavaLayerPeerFactory>> factories;
+};
+
+}
+}