// This file is generated. Edit android/platform/scripts/generate-style-code.js, then run `make android-style-code`. #include "heatmap_layer.hpp" #include #include "../conversion/property_value.hpp" #include "../conversion/transition_options.hpp" #include namespace mbgl { namespace android { inline mbgl::style::HeatmapLayer& toHeatmapLayer(mbgl::style::Layer& layer) { return static_cast(layer); } /** * Creates an owning peer object (for layers not attached to the map) from the JVM side */ HeatmapLayer::HeatmapLayer(jni::JNIEnv& env, jni::String& layerId, jni::String& sourceId) : Layer(std::make_unique(jni::Make(env, layerId), jni::Make(env, sourceId))) { } /** * Creates a non-owning peer object (for layers currently attached to the map) */ HeatmapLayer::HeatmapLayer(mbgl::Map& map, mbgl::style::HeatmapLayer& coreLayer) : Layer(map, coreLayer) { } /** * Creates an owning peer object (for layers not attached to the map) */ HeatmapLayer::HeatmapLayer(mbgl::Map& map, std::unique_ptr coreLayer) : Layer(map, std::move(coreLayer)) { } HeatmapLayer::~HeatmapLayer() = default; // Property getters jni::Local> HeatmapLayer::getHeatmapRadius(jni::JNIEnv& env) { using namespace mbgl::android::conversion; return std::move(*convert>>(env, toHeatmapLayer(layer).getHeatmapRadius())); } jni::Local> HeatmapLayer::getHeatmapRadiusTransition(jni::JNIEnv& env) { using namespace mbgl::android::conversion; mbgl::style::TransitionOptions options = toHeatmapLayer(layer).getHeatmapRadiusTransition(); return std::move(*convert>>(env, options)); } void HeatmapLayer::setHeatmapRadiusTransition(jni::JNIEnv&, jlong duration, jlong delay) { mbgl::style::TransitionOptions options; options.duration.emplace(mbgl::Milliseconds(duration)); options.delay.emplace(mbgl::Milliseconds(delay)); toHeatmapLayer(layer).setHeatmapRadiusTransition(options); } jni::Local> HeatmapLayer::getHeatmapWeight(jni::JNIEnv& env) { using namespace mbgl::android::conversion; return std::move(*convert>>(env, toHeatmapLayer(layer).getHeatmapWeight())); } jni::Local> HeatmapLayer::getHeatmapIntensity(jni::JNIEnv& env) { using namespace mbgl::android::conversion; return std::move(*convert>>(env, toHeatmapLayer(layer).getHeatmapIntensity())); } jni::Local> HeatmapLayer::getHeatmapIntensityTransition(jni::JNIEnv& env) { using namespace mbgl::android::conversion; mbgl::style::TransitionOptions options = toHeatmapLayer(layer).getHeatmapIntensityTransition(); return std::move(*convert>>(env, options)); } void HeatmapLayer::setHeatmapIntensityTransition(jni::JNIEnv&, jlong duration, jlong delay) { mbgl::style::TransitionOptions options; options.duration.emplace(mbgl::Milliseconds(duration)); options.delay.emplace(mbgl::Milliseconds(delay)); toHeatmapLayer(layer).setHeatmapIntensityTransition(options); } jni::Local> HeatmapLayer::getHeatmapColor(jni::JNIEnv& env) { using namespace mbgl::android::conversion; auto propertyValue = toHeatmapLayer(layer).getHeatmapColor(); if (propertyValue.isUndefined()) { propertyValue = toHeatmapLayer(layer).getDefaultHeatmapColor(); } return std::move(*convert>>(env, propertyValue)); } jni::Local> HeatmapLayer::getHeatmapOpacity(jni::JNIEnv& env) { using namespace mbgl::android::conversion; return std::move(*convert>>(env, toHeatmapLayer(layer).getHeatmapOpacity())); } jni::Local> HeatmapLayer::getHeatmapOpacityTransition(jni::JNIEnv& env) { using namespace mbgl::android::conversion; mbgl::style::TransitionOptions options = toHeatmapLayer(layer).getHeatmapOpacityTransition(); return std::move(*convert>>(env, options)); } void HeatmapLayer::setHeatmapOpacityTransition(jni::JNIEnv&, jlong duration, jlong delay) { mbgl::style::TransitionOptions options; options.duration.emplace(mbgl::Milliseconds(duration)); options.delay.emplace(mbgl::Milliseconds(delay)); toHeatmapLayer(layer).setHeatmapOpacityTransition(options); } // HeatmapJavaLayerPeerFactory HeatmapJavaLayerPeerFactory::~HeatmapJavaLayerPeerFactory() = default; namespace { jni::Local> createJavaPeer(jni::JNIEnv& env, Layer* layer) { static auto& javaClass = jni::Class::Singleton(env); static auto constructor = javaClass.GetConstructor(env); return javaClass.New(env, constructor, reinterpret_cast(layer)); } } // namespace jni::Local> HeatmapJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) { assert(layer.baseImpl->getLayerFactory() == this); return createJavaPeer(env, new HeatmapLayer(map, toHeatmapLayer(layer))); } jni::Local> HeatmapJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr layer) { assert(layer->baseImpl->getLayerFactory() == this); return createJavaPeer(env, new HeatmapLayer(map, std::unique_ptr(static_cast(layer.release())))); } void HeatmapJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) { // Lookup the class static auto& javaClass = jni::Class::Singleton(env); #define METHOD(MethodPtr, name) jni::MakeNativePeerMethod(name) // Register the peer jni::RegisterNativePeer( env, javaClass, "nativePtr", jni::MakePeer, "initialize", "finalize", METHOD(&HeatmapLayer::getHeatmapRadiusTransition, "nativeGetHeatmapRadiusTransition"), METHOD(&HeatmapLayer::setHeatmapRadiusTransition, "nativeSetHeatmapRadiusTransition"), METHOD(&HeatmapLayer::getHeatmapRadius, "nativeGetHeatmapRadius"), METHOD(&HeatmapLayer::getHeatmapWeight, "nativeGetHeatmapWeight"), METHOD(&HeatmapLayer::getHeatmapIntensityTransition, "nativeGetHeatmapIntensityTransition"), METHOD(&HeatmapLayer::setHeatmapIntensityTransition, "nativeSetHeatmapIntensityTransition"), METHOD(&HeatmapLayer::getHeatmapIntensity, "nativeGetHeatmapIntensity"), METHOD(&HeatmapLayer::getHeatmapColor, "nativeGetHeatmapColor"), METHOD(&HeatmapLayer::getHeatmapOpacityTransition, "nativeGetHeatmapOpacityTransition"), METHOD(&HeatmapLayer::setHeatmapOpacityTransition, "nativeSetHeatmapOpacityTransition"), METHOD(&HeatmapLayer::getHeatmapOpacity, "nativeGetHeatmapOpacity")); } } // namespace android } // namespace mbgl