summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexander Shalamov <alexander.shalamov@mapbox.com>2020-03-12 13:17:02 +0200
committerkevin <kevin.li@mapbox.com>2020-03-24 10:39:42 +0800
commit30ebae8e91774ec1ad5892bd474fb7dad8c73ebc (patch)
tree67d5b7987953576769ffaa6d8665bf3c7b5d3fc4
parent239ce4f44950772a0013723e09072f6da69f3a43 (diff)
downloadqtlocation-mapboxgl-30ebae8e91774ec1ad5892bd474fb7dad8c73ebc.tar.gz
Remove Map parameter from factories
- remove unused map from factory interfaces. Map is only needed for repaint.
-rw-r--r--platform/android/src/native_map_view.cpp20
-rw-r--r--platform/android/src/native_map_view.hpp2
-rw-r--r--platform/android/src/snapshotter/map_snapshotter.cpp58
-rw-r--r--platform/android/src/snapshotter/map_snapshotter.hpp22
-rw-r--r--platform/android/src/style/layers/background_layer.cpp20
-rw-r--r--platform/android/src/style/layers/background_layer.hpp8
-rw-r--r--platform/android/src/style/layers/circle_layer.cpp20
-rw-r--r--platform/android/src/style/layers/circle_layer.hpp8
-rw-r--r--platform/android/src/style/layers/custom_layer.cpp28
-rw-r--r--platform/android/src/style/layers/custom_layer.hpp11
-rw-r--r--platform/android/src/style/layers/fill_extrusion_layer.cpp20
-rw-r--r--platform/android/src/style/layers/fill_extrusion_layer.hpp8
-rw-r--r--platform/android/src/style/layers/fill_layer.cpp16
-rw-r--r--platform/android/src/style/layers/fill_layer.hpp8
-rw-r--r--platform/android/src/style/layers/heatmap_layer.cpp20
-rw-r--r--platform/android/src/style/layers/heatmap_layer.hpp8
-rw-r--r--platform/android/src/style/layers/hillshade_layer.cpp20
-rw-r--r--platform/android/src/style/layers/hillshade_layer.hpp8
-rw-r--r--platform/android/src/style/layers/layer.cpp18
-rw-r--r--platform/android/src/style/layers/layer.cpp.ejs16
-rw-r--r--platform/android/src/style/layers/layer.hpp19
-rw-r--r--platform/android/src/style/layers/layer.hpp.ejs8
-rw-r--r--platform/android/src/style/layers/layer_manager.cpp8
-rw-r--r--platform/android/src/style/layers/layer_manager.hpp4
-rw-r--r--platform/android/src/style/layers/line_layer.cpp16
-rw-r--r--platform/android/src/style/layers/line_layer.hpp8
-rw-r--r--platform/android/src/style/layers/raster_layer.cpp20
-rw-r--r--platform/android/src/style/layers/raster_layer.hpp8
-rw-r--r--platform/android/src/style/layers/symbol_layer.cpp20
-rw-r--r--platform/android/src/style/layers/symbol_layer.hpp8
30 files changed, 239 insertions, 219 deletions
diff --git a/platform/android/src/native_map_view.cpp b/platform/android/src/native_map_view.cpp
index f6e2e4a22f..b1eeb9fc2a 100644
--- a/platform/android/src/native_map_view.cpp
+++ b/platform/android/src/native_map_view.cpp
@@ -909,7 +909,7 @@ jni::Local<jni::Array<jni::Object<Layer>>> NativeMapView::getLayers(JNIEnv& env)
auto jLayers = jni::Array<jni::Object<Layer>>::New(env, layers.size());
int index = 0;
for (auto layer : layers) {
- jLayers.Set(env, index, LayerManagerAndroid::get()->createJavaLayerPeer(env, *map, *layer));
+ jLayers.Set(env, index, LayerManagerAndroid::get()->createJavaLayerPeer(env, *layer));
index++;
}
@@ -926,7 +926,7 @@ jni::Local<jni::Object<Layer>> NativeMapView::getLayer(JNIEnv& env, const jni::S
}
// Create and return the layer's native peer
- return LayerManagerAndroid::get()->createJavaLayerPeer(env, *map, *coreLayer);
+ return LayerManagerAndroid::get()->createJavaLayerPeer(env, *coreLayer);
}
void NativeMapView::addLayer(JNIEnv& env, jlong nativeLayerPtr, const jni::String& before) {
@@ -934,7 +934,7 @@ void NativeMapView::addLayer(JNIEnv& env, jlong nativeLayerPtr, const jni::Strin
Layer *layer = reinterpret_cast<Layer *>(nativeLayerPtr);
try {
- layer->addToMap(*map, before ? mbgl::optional<std::string>(jni::Make<std::string>(env, before)) : mbgl::optional<std::string>());
+ layer->addToStyle(map->getStyle(), before ? mbgl::optional<std::string>(jni::Make<std::string>(env, before)) : mbgl::optional<std::string>());
} catch (const std::runtime_error& error) {
jni::ThrowNew(env, jni::FindClass(env, "com/mapbox/mapboxsdk/style/layers/CannotAddLayerException"), error.what());
}
@@ -971,7 +971,7 @@ void NativeMapView::addLayerAbove(JNIEnv& env, jlong nativeLayerPtr, const jni::
// Add the layer
try {
- layer->addToMap(*map, before);
+ layer->addToStyle(map->getStyle(), before);
} catch (const std::runtime_error& error) {
jni::ThrowNew(env, jni::FindClass(env, "com/mapbox/mapboxsdk/style/layers/CannotAddLayerException"), error.what());
}
@@ -994,7 +994,7 @@ void NativeMapView::addLayerAt(JNIEnv& env, jlong nativeLayerPtr, jni::jint inde
// Insert it below the current at that index
try {
- layer->addToMap(*map, layers.at(index)->getID());
+ layer->addToStyle(map->getStyle(), layers.at(index)->getID());
} catch (const std::runtime_error& error) {
jni::ThrowNew(env, jni::FindClass(env, "com/mapbox/mapboxsdk/style/layers/CannotAddLayerException"), error.what());
}
@@ -1017,7 +1017,7 @@ jni::jboolean NativeMapView::removeLayerAt(JNIEnv& env, jni::jint index) {
std::unique_ptr<mbgl::style::Layer> coreLayer = map->getStyle().removeLayer(layers.at(index)->getID());
if (coreLayer) {
jni::Local<jni::Object<Layer>> layerObj =
- LayerManagerAndroid::get()->createJavaLayerPeer(env, *map, std::move(coreLayer));
+ LayerManagerAndroid::get()->createJavaLayerPeer(env, std::move(coreLayer));
return jni::jni_true;
}
return jni::jni_false;
@@ -1141,6 +1141,11 @@ mbgl::Map& NativeMapView::getMap() {
return *map;
}
+void NativeMapView::triggerRepaint(JNIEnv&) {
+ assert(map);
+ map->triggerRepaint();
+}
+
// Static methods //
void NativeMapView::registerNative(jni::JNIEnv& env) {
@@ -1248,7 +1253,8 @@ void NativeMapView::registerNative(jni::JNIEnv& env) {
METHOD(&NativeMapView::setPrefetchTiles, "nativeSetPrefetchTiles"),
METHOD(&NativeMapView::getPrefetchTiles, "nativeGetPrefetchTiles"),
METHOD(&NativeMapView::setPrefetchZoomDelta, "nativeSetPrefetchZoomDelta"),
- METHOD(&NativeMapView::getPrefetchZoomDelta, "nativeGetPrefetchZoomDelta"));
+ METHOD(&NativeMapView::getPrefetchZoomDelta, "nativeGetPrefetchZoomDelta"),
+ METHOD(&NativeMapView::triggerRepaint, "nativeTriggerRepaint"));
}
} // namespace android
diff --git a/platform/android/src/native_map_view.hpp b/platform/android/src/native_map_view.hpp
index ccd62e0b45..be632e242d 100644
--- a/platform/android/src/native_map_view.hpp
+++ b/platform/android/src/native_map_view.hpp
@@ -253,6 +253,8 @@ public:
mbgl::Map& getMap();
+ void triggerRepaint(JNIEnv&);
+
private:
std::unique_ptr<AndroidRendererFrontend> rendererFrontend;
diff --git a/platform/android/src/snapshotter/map_snapshotter.cpp b/platform/android/src/snapshotter/map_snapshotter.cpp
index c3172c1cbd..091757f844 100644
--- a/platform/android/src/snapshotter/map_snapshotter.cpp
+++ b/platform/android/src/snapshotter/map_snapshotter.cpp
@@ -42,7 +42,7 @@ MapSnapshotter::MapSnapshotter(jni::JNIEnv& _env,
size,
pixelRatio,
mbgl::android::FileSource::getSharedResourceOptions(_env, _jFileSource),
- observer,
+ *this,
_localIdeographFontFamily ? jni::Make<std::string>(_env, _localIdeographFontFamily) : optional<std::string>{});
if (position) {
@@ -58,6 +58,7 @@ MapSnapshotter::MapSnapshotter(jni::JNIEnv& _env,
} else {
snapshotter->setStyleURL(jni::Make<std::string>(_env, styleURL));
}
+ activateFilesource(_env);
}
MapSnapshotter::~MapSnapshotter() = default;
@@ -125,16 +126,6 @@ void MapSnapshotter::setRegion(JNIEnv& env, const jni::Object<LatLngBounds>& reg
snapshotter->setRegion(LatLngBounds::getLatLngBounds(env, region));
}
-void MapSnapshotter::addLayer(JNIEnv &, jlong nativeLayerPtr) {
- assert(nativeLayerPtr != 0);
- Layer *layer = reinterpret_cast<Layer *>(nativeLayerPtr);
- style::Layer &t = layer->get();
- std::unique_ptr<style::Layer> u (&t);
- observer.didFinishLoadingStyleCallback= [&] {
- snapshotter->getStyle().addLayer(std::move(u));
- };
-}
-
// Private methods //
void MapSnapshotter::activateFilesource(JNIEnv& env) {
@@ -151,6 +142,51 @@ void MapSnapshotter::deactivateFilesource(JNIEnv& env) {
}
}
+void MapSnapshotter::onDidFailLoadingStyle(const std::string& error) {
+ MBGL_VERIFY_THREAD(tid);
+ android::UniqueEnv _env = android::AttachEnv();
+ static auto& javaClass = jni::Class<MapSnapshotter>::Singleton(*_env);
+ static auto onDidFailLoadingStyle = javaClass.GetMethod<void (jni::String)>(*_env, "onDidFailLoadingStyle");
+ auto weakReference = javaPeer.get(*_env);
+ if (weakReference) {
+ weakReference.Call(*_env, onDidFailLoadingStyle, jni::Make<jni::String>(*_env, error));
+ }
+}
+
+void MapSnapshotter::onDidFinishLoadingStyle() {
+ MBGL_VERIFY_THREAD(tid);
+ android::UniqueEnv _env = android::AttachEnv();
+
+ static auto& javaClass = jni::Class<MapSnapshotter>::Singleton(*_env);
+ static auto onDidFinishLoadingStyle = javaClass.GetMethod<void ()>(*_env, "onDidFinishLoadingStyle");
+ auto weakReference = javaPeer.get(*_env);
+ if (weakReference) {
+ weakReference.Call(*_env, onDidFinishLoadingStyle);
+ }
+}
+
+void MapSnapshotter::onStyleImageMissing(const std::string& imageName) {
+ MBGL_VERIFY_THREAD(tid);
+ android::UniqueEnv _env = android::AttachEnv();
+ static auto& javaClass = jni::Class<MapSnapshotter>::Singleton(*_env);
+ static auto onStyleImageMissing = javaClass.GetMethod<void (jni::String)>(*_env, "onStyleImageMissing");
+ auto weakReference = javaPeer.get(*_env);
+ if (weakReference) {
+ weakReference.Call(*_env, onStyleImageMissing, jni::Make<jni::String>(*_env, imageName));
+ }
+}
+
+void MapSnapshotter::addLayer(JNIEnv& env, jlong nativeLayerPtr, const jni::String& before) {
+ assert(nativeLayerPtr != 0);
+
+ Layer *layer = reinterpret_cast<Layer *>(nativeLayerPtr);
+ try {
+ layer->addToStyle(snapshotter->getStyle(), before ? mbgl::optional<std::string>(jni::Make<std::string>(env, before)) : mbgl::optional<std::string>());
+ } catch (const std::runtime_error& error) {
+ jni::ThrowNew(env, jni::FindClass(env, "com/mapbox/mapboxsdk/style/layers/CannotAddLayerException"), error.what());
+ }
+}
+
// Static methods //
void MapSnapshotter::registerNative(jni::JNIEnv& env) {
diff --git a/platform/android/src/snapshotter/map_snapshotter.hpp b/platform/android/src/snapshotter/map_snapshotter.hpp
index 96214df090..902f7650e5 100644
--- a/platform/android/src/snapshotter/map_snapshotter.hpp
+++ b/platform/android/src/snapshotter/map_snapshotter.hpp
@@ -14,18 +14,8 @@
namespace mbgl {
namespace android {
- class SnapshotObserver final : public mbgl::MapSnapshotterObserver {
- public:
- ~SnapshotObserver() = default;
- void onDidFinishLoadingStyle() override {
- if (didFinishLoadingStyleCallback) {
- didFinishLoadingStyleCallback();
- }
- }
- std::function<void()> didFinishLoadingStyleCallback;
- };
-
-class MapSnapshotter {
+
+class MapSnapshotter final : public mbgl::MapSnapshotterObserver {
public:
static constexpr auto Name() { return "com/mapbox/mapboxsdk/snapshotter/MapSnapshotter"; };
@@ -61,7 +51,12 @@ public:
void cancel(JNIEnv&);
- void addLayer(JNIEnv&, jlong);
+ void addLayer(JNIEnv&, jlong, const jni::String&);
+
+ // MapSnapshotterObserver overrides
+ void onDidFailLoadingStyle(const std::string&) override;
+ void onDidFinishLoadingStyle() override;
+ void onStyleImageMissing(const std::string&) override;
private:
MBGL_STORE_THREAD(tid);
@@ -73,7 +68,6 @@ private:
bool showLogo;
std::unique_ptr<mbgl::MapSnapshotter> snapshotter;
- SnapshotObserver observer;
FileSource *jFileSource;
void activateFilesource(JNIEnv&);
void deactivateFilesource(JNIEnv&);
diff --git a/platform/android/src/style/layers/background_layer.cpp b/platform/android/src/style/layers/background_layer.cpp
index e28fd0798b..d0084dc2de 100644
--- a/platform/android/src/style/layers/background_layer.cpp
+++ b/platform/android/src/style/layers/background_layer.cpp
@@ -26,15 +26,15 @@ namespace android {
/**
* Creates a non-owning peer object (for layers currently attached to the map)
*/
- BackgroundLayer::BackgroundLayer(mbgl::Map& map, mbgl::style::BackgroundLayer& coreLayer)
- : Layer(map, coreLayer) {
+ BackgroundLayer::BackgroundLayer(mbgl::style::BackgroundLayer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- BackgroundLayer::BackgroundLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::BackgroundLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ BackgroundLayer::BackgroundLayer(std::unique_ptr<mbgl::style::BackgroundLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
BackgroundLayer::~BackgroundLayer() = default;
@@ -108,14 +108,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> BackgroundJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> BackgroundJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new BackgroundLayer(map, toBackgroundLayer(layer)));
+ return createJavaPeer(env, new BackgroundLayer(toBackgroundLayer(layer)));
}
- jni::Local<jni::Object<Layer>> BackgroundJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> BackgroundJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new BackgroundLayer(map, std::unique_ptr<mbgl::style::BackgroundLayer>(static_cast<mbgl::style::BackgroundLayer*>(layer.release()))));
+ return createJavaPeer(env, new BackgroundLayer(std::unique_ptr<mbgl::style::BackgroundLayer>(static_cast<mbgl::style::BackgroundLayer*>(layer.release()))));
}
void BackgroundJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
@@ -126,7 +126,9 @@ namespace android {
// Register the peer
jni::RegisterNativePeer<BackgroundLayer>(
- env, javaClass, "nativePtr",
+ env,
+ javaClass,
+ "nativePtr",
jni::MakePeer<BackgroundLayer, jni::String&>,
"initialize",
"finalize",
diff --git a/platform/android/src/style/layers/background_layer.hpp b/platform/android/src/style/layers/background_layer.hpp
index 654031c6f4..e402dc021c 100644
--- a/platform/android/src/style/layers/background_layer.hpp
+++ b/platform/android/src/style/layers/background_layer.hpp
@@ -18,9 +18,9 @@ public:
BackgroundLayer(jni::JNIEnv&, jni::String&);
- BackgroundLayer(mbgl::Map&, mbgl::style::BackgroundLayer&);
+ BackgroundLayer(mbgl::style::BackgroundLayer&);
- BackgroundLayer(mbgl::Map&, std::unique_ptr<mbgl::style::BackgroundLayer>);
+ BackgroundLayer(std::unique_ptr<mbgl::style::BackgroundLayer>);
~BackgroundLayer();
@@ -45,8 +45,8 @@ public:
~BackgroundJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/circle_layer.cpp b/platform/android/src/style/layers/circle_layer.cpp
index f460031dcd..54267e819a 100644
--- a/platform/android/src/style/layers/circle_layer.cpp
+++ b/platform/android/src/style/layers/circle_layer.cpp
@@ -26,15 +26,15 @@ namespace android {
/**
* Creates a non-owning peer object (for layers currently attached to the map)
*/
- CircleLayer::CircleLayer(mbgl::Map& map, mbgl::style::CircleLayer& coreLayer)
- : Layer(map, coreLayer) {
+ CircleLayer::CircleLayer(mbgl::style::CircleLayer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- CircleLayer::CircleLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::CircleLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ CircleLayer::CircleLayer(std::unique_ptr<mbgl::style::CircleLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
CircleLayer::~CircleLayer() = default;
@@ -213,14 +213,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> CircleJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> CircleJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new CircleLayer(map, toCircleLayer(layer)));
+ return createJavaPeer(env, new CircleLayer(toCircleLayer(layer)));
}
- jni::Local<jni::Object<Layer>> CircleJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> CircleJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new CircleLayer(map, std::unique_ptr<mbgl::style::CircleLayer>(static_cast<mbgl::style::CircleLayer*>(layer.release()))));
+ return createJavaPeer(env, new CircleLayer(std::unique_ptr<mbgl::style::CircleLayer>(static_cast<mbgl::style::CircleLayer*>(layer.release()))));
}
void CircleJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
@@ -231,7 +231,9 @@ namespace android {
// Register the peer
jni::RegisterNativePeer<CircleLayer>(
- env, javaClass, "nativePtr",
+ env,
+ javaClass,
+ "nativePtr",
jni::MakePeer<CircleLayer, jni::String&, jni::String&>,
"initialize",
"finalize",
diff --git a/platform/android/src/style/layers/circle_layer.hpp b/platform/android/src/style/layers/circle_layer.hpp
index 191b3924ff..40dca91e2e 100644
--- a/platform/android/src/style/layers/circle_layer.hpp
+++ b/platform/android/src/style/layers/circle_layer.hpp
@@ -18,9 +18,9 @@ public:
CircleLayer(jni::JNIEnv&, jni::String&, jni::String&);
- CircleLayer(mbgl::Map&, mbgl::style::CircleLayer&);
+ CircleLayer(mbgl::style::CircleLayer&);
- CircleLayer(mbgl::Map&, std::unique_ptr<mbgl::style::CircleLayer>);
+ CircleLayer(std::unique_ptr<mbgl::style::CircleLayer>);
~CircleLayer();
@@ -71,8 +71,8 @@ public:
~CircleJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/custom_layer.cpp b/platform/android/src/style/layers/custom_layer.cpp
index 3f44aa8505..329e7285e2 100644
--- a/platform/android/src/style/layers/custom_layer.cpp
+++ b/platform/android/src/style/layers/custom_layer.cpp
@@ -14,25 +14,16 @@ namespace android {
) {
}
- CustomLayer::CustomLayer(mbgl::Map& map, mbgl::style::CustomLayer& coreLayer)
- : Layer(map, coreLayer) {
+ CustomLayer::CustomLayer(mbgl::style::CustomLayer& coreLayer)
+ : Layer(coreLayer) {
}
- CustomLayer::CustomLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::CustomLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ CustomLayer::CustomLayer(std::unique_ptr<mbgl::style::CustomLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
CustomLayer::~CustomLayer() = default;
- void CustomLayer::update(jni::JNIEnv&) {
- Log::Debug(mbgl::Event::JNI, "Updating map");
- if (map) {
- map->triggerRepaint();
- } else {
- Log::Error(mbgl::Event::JNI, "No map reference, cannot update");
- }
- }
-
namespace {
jni::Local<jni::Object<Layer>> createJavaPeer(jni::JNIEnv& env, Layer* layer) {
static auto& javaClass = jni::Class<CustomLayer>::Singleton(env);
@@ -43,12 +34,12 @@ namespace android {
CustomJavaLayerPeerFactory::~CustomJavaLayerPeerFactory() = default;
- jni::Local<jni::Object<Layer>> CustomJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
- return createJavaPeer(env, new CustomLayer(map, static_cast<mbgl::style::CustomLayer&>(layer)));
+ jni::Local<jni::Object<Layer>> CustomJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
+ return createJavaPeer(env, new CustomLayer(static_cast<mbgl::style::CustomLayer&>(layer)));
}
- jni::Local<jni::Object<Layer>> CustomJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
- return createJavaPeer(env, new CustomLayer(map, std::unique_ptr<mbgl::style::CustomLayer>(static_cast<mbgl::style::CustomLayer*>(layer.release()))));
+ jni::Local<jni::Object<Layer>> CustomJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
+ return createJavaPeer(env, new CustomLayer(std::unique_ptr<mbgl::style::CustomLayer>(static_cast<mbgl::style::CustomLayer*>(layer.release()))));
}
void CustomJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
@@ -62,8 +53,7 @@ namespace android {
env, javaClass, "nativePtr",
jni::MakePeer<CustomLayer, const jni::String&, jni::jlong>,
"initialize",
- "finalize",
- METHOD(&CustomLayer::update, "nativeUpdate"));
+ "finalize");
}
} // namespace android
diff --git a/platform/android/src/style/layers/custom_layer.hpp b/platform/android/src/style/layers/custom_layer.hpp
index dc328a2137..3856ea73ae 100644
--- a/platform/android/src/style/layers/custom_layer.hpp
+++ b/platform/android/src/style/layers/custom_layer.hpp
@@ -16,14 +16,11 @@ public:
static void registerNative(jni::JNIEnv&);
CustomLayer(jni::JNIEnv&, const jni::String&, jni::jlong);
- CustomLayer(mbgl::Map&, mbgl::style::CustomLayer&);
- CustomLayer(mbgl::Map&, std::unique_ptr<mbgl::style::CustomLayer>);
+ CustomLayer(mbgl::style::CustomLayer&);
+ CustomLayer(std::unique_ptr<mbgl::style::CustomLayer>);
~CustomLayer();
- void update(jni::JNIEnv&);
-
jni::Local<jni::Object<Layer>> createJavaPeer(jni::JNIEnv&);
-
}; // class CustomLayer
class CustomJavaLayerPeerFactory final : public JavaLayerPeerFactory, public mbgl::CustomLayerFactory {
@@ -31,8 +28,8 @@ public:
~CustomJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/fill_extrusion_layer.cpp b/platform/android/src/style/layers/fill_extrusion_layer.cpp
index ddfbd71544..9b7c66a0a5 100644
--- a/platform/android/src/style/layers/fill_extrusion_layer.cpp
+++ b/platform/android/src/style/layers/fill_extrusion_layer.cpp
@@ -26,15 +26,15 @@ namespace android {
/**
* Creates a non-owning peer object (for layers currently attached to the map)
*/
- FillExtrusionLayer::FillExtrusionLayer(mbgl::Map& map, mbgl::style::FillExtrusionLayer& coreLayer)
- : Layer(map, coreLayer) {
+ FillExtrusionLayer::FillExtrusionLayer(mbgl::style::FillExtrusionLayer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- FillExtrusionLayer::FillExtrusionLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::FillExtrusionLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ FillExtrusionLayer::FillExtrusionLayer(std::unique_ptr<mbgl::style::FillExtrusionLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
FillExtrusionLayer::~FillExtrusionLayer() = default;
@@ -172,14 +172,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> FillExtrusionJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> FillExtrusionJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new FillExtrusionLayer(map, toFillExtrusionLayer(layer)));
+ return createJavaPeer(env, new FillExtrusionLayer(toFillExtrusionLayer(layer)));
}
- jni::Local<jni::Object<Layer>> FillExtrusionJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> FillExtrusionJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new FillExtrusionLayer(map, std::unique_ptr<mbgl::style::FillExtrusionLayer>(static_cast<mbgl::style::FillExtrusionLayer*>(layer.release()))));
+ return createJavaPeer(env, new FillExtrusionLayer(std::unique_ptr<mbgl::style::FillExtrusionLayer>(static_cast<mbgl::style::FillExtrusionLayer*>(layer.release()))));
}
void FillExtrusionJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
@@ -190,7 +190,9 @@ namespace android {
// Register the peer
jni::RegisterNativePeer<FillExtrusionLayer>(
- env, javaClass, "nativePtr",
+ env,
+ javaClass,
+ "nativePtr",
jni::MakePeer<FillExtrusionLayer, jni::String&, jni::String&>,
"initialize",
"finalize",
diff --git a/platform/android/src/style/layers/fill_extrusion_layer.hpp b/platform/android/src/style/layers/fill_extrusion_layer.hpp
index 15dad67b01..6f0a24131c 100644
--- a/platform/android/src/style/layers/fill_extrusion_layer.hpp
+++ b/platform/android/src/style/layers/fill_extrusion_layer.hpp
@@ -18,9 +18,9 @@ public:
FillExtrusionLayer(jni::JNIEnv&, jni::String&, jni::String&);
- FillExtrusionLayer(mbgl::Map&, mbgl::style::FillExtrusionLayer&);
+ FillExtrusionLayer(mbgl::style::FillExtrusionLayer&);
- FillExtrusionLayer(mbgl::Map&, std::unique_ptr<mbgl::style::FillExtrusionLayer>);
+ FillExtrusionLayer(std::unique_ptr<mbgl::style::FillExtrusionLayer>);
~FillExtrusionLayer();
@@ -61,8 +61,8 @@ public:
~FillExtrusionJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/fill_layer.cpp b/platform/android/src/style/layers/fill_layer.cpp
index 3679688efc..ba6ed21791 100644
--- a/platform/android/src/style/layers/fill_layer.cpp
+++ b/platform/android/src/style/layers/fill_layer.cpp
@@ -26,15 +26,15 @@ namespace android {
/**
* Creates a non-owning peer object (for layers currently attached to the map)
*/
- FillLayer::FillLayer(mbgl::Map& map, mbgl::style::FillLayer& coreLayer)
- : Layer(map, coreLayer) {
+ FillLayer::FillLayer(mbgl::style::FillLayer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- FillLayer::FillLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::FillLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ FillLayer::FillLayer(std::unique_ptr<mbgl::style::FillLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
FillLayer::~FillLayer() = default;
@@ -159,14 +159,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> FillJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> FillJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new FillLayer(map, toFillLayer(layer)));
+ return createJavaPeer(env, new FillLayer(toFillLayer(layer)));
}
- jni::Local<jni::Object<Layer>> FillJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> FillJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new FillLayer(map, std::unique_ptr<mbgl::style::FillLayer>(static_cast<mbgl::style::FillLayer*>(layer.release()))));
+ return createJavaPeer(env, new FillLayer(std::unique_ptr<mbgl::style::FillLayer>(static_cast<mbgl::style::FillLayer*>(layer.release()))));
}
void FillJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
diff --git a/platform/android/src/style/layers/fill_layer.hpp b/platform/android/src/style/layers/fill_layer.hpp
index e6471643ca..807b939a71 100644
--- a/platform/android/src/style/layers/fill_layer.hpp
+++ b/platform/android/src/style/layers/fill_layer.hpp
@@ -18,9 +18,9 @@ public:
FillLayer(jni::JNIEnv&, jni::String&, jni::String&);
- FillLayer(mbgl::Map&, mbgl::style::FillLayer&);
+ FillLayer(mbgl::style::FillLayer&);
- FillLayer(mbgl::Map&, std::unique_ptr<mbgl::style::FillLayer>);
+ FillLayer(std::unique_ptr<mbgl::style::FillLayer>);
~FillLayer();
@@ -59,8 +59,8 @@ public:
~FillJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/heatmap_layer.cpp b/platform/android/src/style/layers/heatmap_layer.cpp
index 509ab5d707..dfb8bbb4b3 100644
--- a/platform/android/src/style/layers/heatmap_layer.cpp
+++ b/platform/android/src/style/layers/heatmap_layer.cpp
@@ -26,15 +26,15 @@ namespace android {
/**
* 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) {
+ HeatmapLayer::HeatmapLayer(mbgl::style::HeatmapLayer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- HeatmapLayer::HeatmapLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::HeatmapLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ HeatmapLayer::HeatmapLayer(std::unique_ptr<mbgl::style::HeatmapLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
HeatmapLayer::~HeatmapLayer() = default;
@@ -122,14 +122,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> HeatmapJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> HeatmapJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new HeatmapLayer(map, toHeatmapLayer(layer)));
+ return createJavaPeer(env, new HeatmapLayer(toHeatmapLayer(layer)));
}
- jni::Local<jni::Object<Layer>> HeatmapJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> HeatmapJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new HeatmapLayer(map, std::unique_ptr<mbgl::style::HeatmapLayer>(static_cast<mbgl::style::HeatmapLayer*>(layer.release()))));
+ return createJavaPeer(env, new HeatmapLayer(std::unique_ptr<mbgl::style::HeatmapLayer>(static_cast<mbgl::style::HeatmapLayer*>(layer.release()))));
}
void HeatmapJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
@@ -140,7 +140,9 @@ namespace android {
// Register the peer
jni::RegisterNativePeer<HeatmapLayer>(
- env, javaClass, "nativePtr",
+ env,
+ javaClass,
+ "nativePtr",
jni::MakePeer<HeatmapLayer, jni::String&, jni::String&>,
"initialize",
"finalize",
diff --git a/platform/android/src/style/layers/heatmap_layer.hpp b/platform/android/src/style/layers/heatmap_layer.hpp
index 9e3db0c89a..f56e3eb4a9 100644
--- a/platform/android/src/style/layers/heatmap_layer.hpp
+++ b/platform/android/src/style/layers/heatmap_layer.hpp
@@ -18,9 +18,9 @@ public:
HeatmapLayer(jni::JNIEnv&, jni::String&, jni::String&);
- HeatmapLayer(mbgl::Map&, mbgl::style::HeatmapLayer&);
+ HeatmapLayer(mbgl::style::HeatmapLayer&);
- HeatmapLayer(mbgl::Map&, std::unique_ptr<mbgl::style::HeatmapLayer>);
+ HeatmapLayer(std::unique_ptr<mbgl::style::HeatmapLayer>);
~HeatmapLayer();
@@ -49,8 +49,8 @@ public:
~HeatmapJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/hillshade_layer.cpp b/platform/android/src/style/layers/hillshade_layer.cpp
index bc25f666a0..3c72b503b7 100644
--- a/platform/android/src/style/layers/hillshade_layer.cpp
+++ b/platform/android/src/style/layers/hillshade_layer.cpp
@@ -26,15 +26,15 @@ namespace android {
/**
* Creates a non-owning peer object (for layers currently attached to the map)
*/
- HillshadeLayer::HillshadeLayer(mbgl::Map& map, mbgl::style::HillshadeLayer& coreLayer)
- : Layer(map, coreLayer) {
+ HillshadeLayer::HillshadeLayer(mbgl::style::HillshadeLayer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- HillshadeLayer::HillshadeLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::HillshadeLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ HillshadeLayer::HillshadeLayer(std::unique_ptr<mbgl::style::HillshadeLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
HillshadeLayer::~HillshadeLayer() = default;
@@ -136,14 +136,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> HillshadeJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> HillshadeJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new HillshadeLayer(map, toHillshadeLayer(layer)));
+ return createJavaPeer(env, new HillshadeLayer(toHillshadeLayer(layer)));
}
- jni::Local<jni::Object<Layer>> HillshadeJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> HillshadeJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new HillshadeLayer(map, std::unique_ptr<mbgl::style::HillshadeLayer>(static_cast<mbgl::style::HillshadeLayer*>(layer.release()))));
+ return createJavaPeer(env, new HillshadeLayer(std::unique_ptr<mbgl::style::HillshadeLayer>(static_cast<mbgl::style::HillshadeLayer*>(layer.release()))));
}
void HillshadeJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
@@ -154,7 +154,9 @@ namespace android {
// Register the peer
jni::RegisterNativePeer<HillshadeLayer>(
- env, javaClass, "nativePtr",
+ env,
+ javaClass,
+ "nativePtr",
jni::MakePeer<HillshadeLayer, jni::String&, jni::String&>,
"initialize",
"finalize",
diff --git a/platform/android/src/style/layers/hillshade_layer.hpp b/platform/android/src/style/layers/hillshade_layer.hpp
index 2f4ea30c22..bc210a9987 100644
--- a/platform/android/src/style/layers/hillshade_layer.hpp
+++ b/platform/android/src/style/layers/hillshade_layer.hpp
@@ -18,9 +18,9 @@ public:
HillshadeLayer(jni::JNIEnv&, jni::String&, jni::String&);
- HillshadeLayer(mbgl::Map&, mbgl::style::HillshadeLayer&);
+ HillshadeLayer(mbgl::style::HillshadeLayer&);
- HillshadeLayer(mbgl::Map&, std::unique_ptr<mbgl::style::HillshadeLayer>);
+ HillshadeLayer(std::unique_ptr<mbgl::style::HillshadeLayer>);
~HillshadeLayer();
@@ -53,8 +53,8 @@ public:
~HillshadeJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/layer.cpp b/platform/android/src/style/layers/layer.cpp
index b90d670a4b..839a7b91c4 100644
--- a/platform/android/src/style/layers/layer.cpp
+++ b/platform/android/src/style/layers/layer.cpp
@@ -45,33 +45,21 @@ namespace android {
/**
* Takes a non-owning reference. For lookup methods
*/
- Layer::Layer(mbgl::Map& coreMap, mbgl::style::Layer& coreLayer) : layer(coreLayer) , map(&coreMap) {
+ Layer::Layer(mbgl::style::Layer& coreLayer) : layer(coreLayer) {
}
- /**
- * Takes a owning reference. Ownership is transfered to this peer, eg after removing
- * from the map
- */
- Layer::Layer(mbgl::Map& coreMap, std::unique_ptr<mbgl::style::Layer> coreLayer)
- : ownedLayer(std::move(coreLayer))
- , layer(*ownedLayer)
- , map(&coreMap) {
- }
Layer::~Layer() {
}
- void Layer::addToMap(mbgl::Map& _map, mbgl::optional<std::string> before) {
+ void Layer::addToStyle(mbgl::style::Style& style, 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.getStyle().addLayer(releaseCoreLayer(), before);
-
- // Save pointer to the map
- this->map = &_map;
+ style.addLayer(releaseCoreLayer(), before);
}
void Layer::setLayer(std::unique_ptr<mbgl::style::Layer> sourceLayer) {
diff --git a/platform/android/src/style/layers/layer.cpp.ejs b/platform/android/src/style/layers/layer.cpp.ejs
index e98ee49ff6..5d241e9a3b 100644
--- a/platform/android/src/style/layers/layer.cpp.ejs
+++ b/platform/android/src/style/layers/layer.cpp.ejs
@@ -38,15 +38,15 @@ namespace android {
/**
* Creates a non-owning peer object (for layers currently attached to the map)
*/
- <%- camelize(type) %>Layer::<%- camelize(type) %>Layer(mbgl::Map& map, mbgl::style::<%- camelize(type) %>Layer& coreLayer)
- : Layer(map, coreLayer) {
+ <%- camelize(type) %>Layer::<%- camelize(type) %>Layer(mbgl::style::<%- camelize(type) %>Layer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- <%- camelize(type) %>Layer::<%- camelize(type) %>Layer(mbgl::Map& map, std::unique_ptr<mbgl::style::<%- camelize(type) %>Layer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ <%- camelize(type) %>Layer::<%- camelize(type) %>Layer(std::unique_ptr<mbgl::style::<%- camelize(type) %>Layer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
<%- camelize(type) %>Layer::~<%- camelize(type) %>Layer() = default;
@@ -100,14 +100,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> <%- camelize(type) %>JavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> <%- camelize(type) %>JavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new <%- camelize(type) %>Layer(map, to<%- camelize(type) %>Layer(layer)));
+ return createJavaPeer(env, new <%- camelize(type) %>Layer(to<%- camelize(type) %>Layer(layer)));
}
- jni::Local<jni::Object<Layer>> <%- camelize(type) %>JavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> <%- camelize(type) %>JavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new <%- camelize(type) %>Layer(map, std::unique_ptr<mbgl::style::<%- camelize(type) %>Layer>(static_cast<mbgl::style::<%- camelize(type) %>Layer*>(layer.release()))));
+ return createJavaPeer(env, new <%- camelize(type) %>Layer(std::unique_ptr<mbgl::style::<%- camelize(type) %>Layer>(static_cast<mbgl::style::<%- camelize(type) %>Layer*>(layer.release()))));
}
void <%- camelize(type) %>JavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
diff --git a/platform/android/src/style/layers/layer.hpp b/platform/android/src/style/layers/layer.hpp
index 5717852d0c..aff77ef113 100644
--- a/platform/android/src/style/layers/layer.hpp
+++ b/platform/android/src/style/layers/layer.hpp
@@ -1,7 +1,7 @@
#pragma once
#include <mbgl/layermanager/layer_factory.hpp>
-#include <mbgl/map/map.hpp>
+#include <mbgl/style/style.hpp>
#include <mbgl/style/layer.hpp>
#include "../../gson/json_array.hpp"
#include "../value.hpp"
@@ -27,7 +27,7 @@ public:
*/
void setLayer(std::unique_ptr<mbgl::style::Layer>);
- void addToMap(mbgl::Map&, mbgl::optional<std::string>);
+ void addToStyle(mbgl::style::Style&, mbgl::optional<std::string>);
// Release the owned view and return it
std::unique_ptr<mbgl::style::Layer> releaseCoreLayer();
@@ -68,26 +68,19 @@ protected:
/*
* Called when a non-owning peer object is created on the c++ side
*/
- Layer(mbgl::Map&, mbgl::style::Layer&);
+ Layer(mbgl::style::Layer&);
/*
* Called when a owning peer object is created on the c++ side
*/
- Layer(mbgl::Map&, std::unique_ptr<mbgl::style::Layer>);
-
- /*
- * Called when a Java object was created from the jvm side
- */
Layer(std::unique_ptr<mbgl::style::Layer>);
+
// Owned layer is set when creating a new layer, before adding it to the map
std::unique_ptr<mbgl::style::Layer> ownedLayer;
// Raw reference to the layer
mbgl::style::Layer& layer;
-
- // Map is set when the layer is retrieved or after adding to the map
- mbgl::Map* map;
};
/**
@@ -99,12 +92,12 @@ public:
/**
* @brief Create a non-owning peer.
*/
- virtual jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) = 0;
+ virtual jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) = 0;
/**
* @brief Create an owning peer.
*/
- virtual jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) = 0;
+ virtual jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) = 0;
/**
* @brief Register peer methods.
diff --git a/platform/android/src/style/layers/layer.hpp.ejs b/platform/android/src/style/layers/layer.hpp.ejs
index 28e00b2731..eb8db0620d 100644
--- a/platform/android/src/style/layers/layer.hpp.ejs
+++ b/platform/android/src/style/layers/layer.hpp.ejs
@@ -26,9 +26,9 @@ public:
<%- camelize(type) %>Layer(jni::JNIEnv&, jni::String&, jni::String&);
<% } -%>
- <%- camelize(type) %>Layer(mbgl::Map&, mbgl::style::<%- camelize(type) %>Layer&);
+ <%- camelize(type) %>Layer(mbgl::style::<%- camelize(type) %>Layer&);
- <%- camelize(type) %>Layer(mbgl::Map&, std::unique_ptr<mbgl::style::<%- camelize(type) %>Layer>);
+ <%- camelize(type) %>Layer(std::unique_ptr<mbgl::style::<%- camelize(type) %>Layer>);
~<%- camelize(type) %>Layer();
@@ -49,8 +49,8 @@ public:
~<%- camelize(type) %>JavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/layer_manager.cpp b/platform/android/src/style/layers/layer_manager.cpp
index d0c54ee00f..e3fc1b874e 100644
--- a/platform/android/src/style/layers/layer_manager.cpp
+++ b/platform/android/src/style/layers/layer_manager.cpp
@@ -77,16 +77,16 @@ LayerManagerAndroid::LayerManagerAndroid() {
LayerManagerAndroid::~LayerManagerAndroid() = default;
-jni::Local<jni::Object<Layer>> LayerManagerAndroid::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+jni::Local<jni::Object<Layer>> LayerManagerAndroid::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
if (JavaLayerPeerFactory* factory = getPeerFactory(layer.getTypeInfo())) {
- return factory->createJavaLayerPeer(env, map, layer);
+ return factory->createJavaLayerPeer(env, layer);
}
return jni::Local<jni::Object<Layer>>();
}
-jni::Local<jni::Object<Layer>> LayerManagerAndroid::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+jni::Local<jni::Object<Layer>> LayerManagerAndroid::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
if (JavaLayerPeerFactory* factory = getPeerFactory(layer->getTypeInfo())) {
- return factory->createJavaLayerPeer(env, map, std::move(layer));
+ return factory->createJavaLayerPeer(env, std::move(layer));
}
return jni::Local<jni::Object<Layer>>();
}
diff --git a/platform/android/src/style/layers/layer_manager.hpp b/platform/android/src/style/layers/layer_manager.hpp
index 807ded1737..43bdd1d1e1 100644
--- a/platform/android/src/style/layers/layer_manager.hpp
+++ b/platform/android/src/style/layers/layer_manager.hpp
@@ -22,8 +22,8 @@ public:
~LayerManagerAndroid() final;
static LayerManagerAndroid* get() noexcept;
- 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>);
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&);
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>);
void registerNative(jni::JNIEnv&);
diff --git a/platform/android/src/style/layers/line_layer.cpp b/platform/android/src/style/layers/line_layer.cpp
index 1719c9ae59..bf3a403b66 100644
--- a/platform/android/src/style/layers/line_layer.cpp
+++ b/platform/android/src/style/layers/line_layer.cpp
@@ -26,15 +26,15 @@ namespace android {
/**
* Creates a non-owning peer object (for layers currently attached to the map)
*/
- LineLayer::LineLayer(mbgl::Map& map, mbgl::style::LineLayer& coreLayer)
- : Layer(map, coreLayer) {
+ LineLayer::LineLayer(mbgl::style::LineLayer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- LineLayer::LineLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::LineLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ LineLayer::LineLayer(std::unique_ptr<mbgl::style::LineLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
LineLayer::~LineLayer() = default;
@@ -251,14 +251,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> LineJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> LineJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new LineLayer(map, toLineLayer(layer)));
+ return createJavaPeer(env, new LineLayer(toLineLayer(layer)));
}
- jni::Local<jni::Object<Layer>> LineJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> LineJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new LineLayer(map, std::unique_ptr<mbgl::style::LineLayer>(static_cast<mbgl::style::LineLayer*>(layer.release()))));
+ return createJavaPeer(env, new LineLayer(std::unique_ptr<mbgl::style::LineLayer>(static_cast<mbgl::style::LineLayer*>(layer.release()))));
}
void LineJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
diff --git a/platform/android/src/style/layers/line_layer.hpp b/platform/android/src/style/layers/line_layer.hpp
index 72a69f218e..25b270fbc6 100644
--- a/platform/android/src/style/layers/line_layer.hpp
+++ b/platform/android/src/style/layers/line_layer.hpp
@@ -18,9 +18,9 @@ public:
LineLayer(jni::JNIEnv&, jni::String&, jni::String&);
- LineLayer(mbgl::Map&, mbgl::style::LineLayer&);
+ LineLayer(mbgl::style::LineLayer&);
- LineLayer(mbgl::Map&, std::unique_ptr<mbgl::style::LineLayer>);
+ LineLayer(std::unique_ptr<mbgl::style::LineLayer>);
~LineLayer();
@@ -83,8 +83,8 @@ public:
~LineJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/raster_layer.cpp b/platform/android/src/style/layers/raster_layer.cpp
index b12267525f..53442c0a94 100644
--- a/platform/android/src/style/layers/raster_layer.cpp
+++ b/platform/android/src/style/layers/raster_layer.cpp
@@ -26,15 +26,15 @@ namespace android {
/**
* Creates a non-owning peer object (for layers currently attached to the map)
*/
- RasterLayer::RasterLayer(mbgl::Map& map, mbgl::style::RasterLayer& coreLayer)
- : Layer(map, coreLayer) {
+ RasterLayer::RasterLayer(mbgl::style::RasterLayer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- RasterLayer::RasterLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::RasterLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ RasterLayer::RasterLayer(std::unique_ptr<mbgl::style::RasterLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
RasterLayer::~RasterLayer() = default;
@@ -172,14 +172,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> RasterJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> RasterJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new RasterLayer(map, toRasterLayer(layer)));
+ return createJavaPeer(env, new RasterLayer(toRasterLayer(layer)));
}
- jni::Local<jni::Object<Layer>> RasterJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> RasterJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new RasterLayer(map, std::unique_ptr<mbgl::style::RasterLayer>(static_cast<mbgl::style::RasterLayer*>(layer.release()))));
+ return createJavaPeer(env, new RasterLayer(std::unique_ptr<mbgl::style::RasterLayer>(static_cast<mbgl::style::RasterLayer*>(layer.release()))));
}
void RasterJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
@@ -190,7 +190,9 @@ namespace android {
// Register the peer
jni::RegisterNativePeer<RasterLayer>(
- env, javaClass, "nativePtr",
+ env,
+ javaClass,
+ "nativePtr",
jni::MakePeer<RasterLayer, jni::String&, jni::String&>,
"initialize",
"finalize",
diff --git a/platform/android/src/style/layers/raster_layer.hpp b/platform/android/src/style/layers/raster_layer.hpp
index 53bee85e2b..bbda2e0c57 100644
--- a/platform/android/src/style/layers/raster_layer.hpp
+++ b/platform/android/src/style/layers/raster_layer.hpp
@@ -18,9 +18,9 @@ public:
RasterLayer(jni::JNIEnv&, jni::String&, jni::String&);
- RasterLayer(mbgl::Map&, mbgl::style::RasterLayer&);
+ RasterLayer(mbgl::style::RasterLayer&);
- RasterLayer(mbgl::Map&, std::unique_ptr<mbgl::style::RasterLayer>);
+ RasterLayer(std::unique_ptr<mbgl::style::RasterLayer>);
~RasterLayer();
@@ -61,8 +61,8 @@ public:
~RasterJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;
diff --git a/platform/android/src/style/layers/symbol_layer.cpp b/platform/android/src/style/layers/symbol_layer.cpp
index 53b35a9a13..198dbe635f 100644
--- a/platform/android/src/style/layers/symbol_layer.cpp
+++ b/platform/android/src/style/layers/symbol_layer.cpp
@@ -26,15 +26,15 @@ namespace android {
/**
* Creates a non-owning peer object (for layers currently attached to the map)
*/
- SymbolLayer::SymbolLayer(mbgl::Map& map, mbgl::style::SymbolLayer& coreLayer)
- : Layer(map, coreLayer) {
+ SymbolLayer::SymbolLayer(mbgl::style::SymbolLayer& coreLayer)
+ : Layer(coreLayer) {
}
/**
* Creates an owning peer object (for layers not attached to the map)
*/
- SymbolLayer::SymbolLayer(mbgl::Map& map, std::unique_ptr<mbgl::style::SymbolLayer> coreLayer)
- : Layer(map, std::move(coreLayer)) {
+ SymbolLayer::SymbolLayer(std::unique_ptr<mbgl::style::SymbolLayer> coreLayer)
+ : Layer(std::move(coreLayer)) {
}
SymbolLayer::~SymbolLayer() = default;
@@ -485,14 +485,14 @@ namespace android {
}
} // namespace
- jni::Local<jni::Object<Layer>> SymbolJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, mbgl::style::Layer& layer) {
+ jni::Local<jni::Object<Layer>> SymbolJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::style::Layer& layer) {
assert(layer.baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new SymbolLayer(map, toSymbolLayer(layer)));
+ return createJavaPeer(env, new SymbolLayer(toSymbolLayer(layer)));
}
- jni::Local<jni::Object<Layer>> SymbolJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer> layer) {
+ jni::Local<jni::Object<Layer>> SymbolJavaLayerPeerFactory::createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer> layer) {
assert(layer->baseImpl->getTypeInfo() == getTypeInfo());
- return createJavaPeer(env, new SymbolLayer(map, std::unique_ptr<mbgl::style::SymbolLayer>(static_cast<mbgl::style::SymbolLayer*>(layer.release()))));
+ return createJavaPeer(env, new SymbolLayer(std::unique_ptr<mbgl::style::SymbolLayer>(static_cast<mbgl::style::SymbolLayer*>(layer.release()))));
}
void SymbolJavaLayerPeerFactory::registerNative(jni::JNIEnv& env) {
@@ -503,7 +503,9 @@ namespace android {
// Register the peer
jni::RegisterNativePeer<SymbolLayer>(
- env, javaClass, "nativePtr",
+ env,
+ javaClass,
+ "nativePtr",
jni::MakePeer<SymbolLayer, jni::String&, jni::String&>,
"initialize",
"finalize",
diff --git a/platform/android/src/style/layers/symbol_layer.hpp b/platform/android/src/style/layers/symbol_layer.hpp
index 9e494e678a..4898c830df 100644
--- a/platform/android/src/style/layers/symbol_layer.hpp
+++ b/platform/android/src/style/layers/symbol_layer.hpp
@@ -18,9 +18,9 @@ public:
SymbolLayer(jni::JNIEnv&, jni::String&, jni::String&);
- SymbolLayer(mbgl::Map&, mbgl::style::SymbolLayer&);
+ SymbolLayer(mbgl::style::SymbolLayer&);
- SymbolLayer(mbgl::Map&, std::unique_ptr<mbgl::style::SymbolLayer>);
+ SymbolLayer(std::unique_ptr<mbgl::style::SymbolLayer>);
~SymbolLayer();
@@ -167,8 +167,8 @@ public:
~SymbolJavaLayerPeerFactory() override;
// JavaLayerPeerFactory overrides.
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::Map&, mbgl::style::Layer&) final;
- jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, mbgl::Map& map, std::unique_ptr<mbgl::style::Layer>) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv&, mbgl::style::Layer&) final;
+ jni::Local<jni::Object<Layer>> createJavaLayerPeer(jni::JNIEnv& env, std::unique_ptr<mbgl::style::Layer>) final;
void registerNative(jni::JNIEnv&) final;