#pragma once #include #include #include "layer.hpp" #include #include #include 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() noexcept; jni::Local> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&); jni::Local> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr); void registerNative(jni::JNIEnv&); private: LayerManagerAndroid(); JavaLayerPeerFactory* getPeerFactory(mbgl::style::Layer*); // mbgl:style::LayerManager overrides. std::unique_ptr createLayer(const std::string& type, const std::string& id, const style::conversion::Convertible& value, style::conversion::Error& error) noexcept final; std::vector> factories; }; } }