<% const type = locals.type; -%> // This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make style-code-android`. #include "<%- type %>_layer.hpp" #include //XXX #include namespace mbgl { namespace android { <% if (type === 'background') { -%> <%- camelize(type) %>Layer::<%- camelize(type) %>Layer(jni::JNIEnv& env, jni::String layerId) : Layer(env, std::make_uniqueLayer>(jni::Make(env, layerId))) { <% } else { -%> <%- camelize(type) %>Layer::<%- camelize(type) %>Layer(jni::JNIEnv& env, jni::String layerId, jni::String sourceId) : Layer(env, std::make_uniqueLayer>(jni::Make(env, layerId), jni::Make(env, sourceId))) { <% } -%> mbgl::Log::Debug(mbgl::Event::JNI, "<%- camelize(type) %>Layer constructed, owning reference"); } <%- camelize(type) %>Layer::<%- camelize(type) %>Layer(mbgl::Map& map, mbgl::style::<%- camelize(type) %>Layer& coreLayer) : Layer(map, coreLayer) { mbgl::Log::Debug(mbgl::Event::JNI, "<%- camelize(type) %>Layer Non-owning reference constructor"); } <%- camelize(type) %>Layer::~<%- camelize(type) %>Layer() = default; jni::Class<<%- camelize(type) %>Layer> <%- camelize(type) %>Layer::javaClass; jni::jobject* <%- camelize(type) %>Layer::createJavaPeer(jni::JNIEnv& env) { static auto constructor = <%- camelize(type) %>Layer::javaClass.template GetConstructor(env); return <%- camelize(type) %>Layer::javaClass.New(env, constructor, reinterpret_cast(this)); } void <%- camelize(type) %>Layer::registerNative(jni::JNIEnv& env) { mbgl::Log::Debug(mbgl::Event::JNI, "Registering native background layer"); //Lookup the class <%- camelize(type) %>Layer::javaClass = *jni::Class<<%- camelize(type) %>Layer>::Find(env).NewGlobalRef(env).release(); #define METHOD(MethodPtr, name) jni::MakeNativePeerMethod(name) //Register the peer jni::RegisterNativePeer<<%- camelize(type) %>Layer>( env, <%- camelize(type) %>Layer::javaClass, "nativePtr", <% if (type === 'background') { -%> std::make_unique<<%- camelize(type) %>Layer, JNIEnv&, jni::String>, <% } else { -%> std::make_unique<<%- camelize(type) %>Layer, JNIEnv&, jni::String, jni::String>, <% } -%> "initialize", "finalize" ); } } // namespace android } // namespace mbgl