summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-01-10 16:56:27 +0200
committerMikhail Pozdnyakov <mikhail.pozdnyakov@mapbox.com>2019-01-10 16:56:27 +0200
commitecac67da790d51068bc2bdf1fed0a68df1eecf69 (patch)
treee942be63dbc7782eaa92402d0ed7afea58f440b3
parent50f5bbcdab9009f5e68f865a4fcf77874c0434ff (diff)
downloadqtlocation-mapboxgl-upstream/mikhail_layer_manager_initialize_android.tar.gz
[android] Add layer_manager_initialize.cpp fileupstream/mikhail_layer_manager_initialize_android
The newly added `layer_manager_initialize.cpp` file encapsulates the parts of the layer manager implementation, responsible for enabling/disabling of the layer modules. The client code can provide its own `layer_manager_initialize.cpp` file in order to disable certain layer types.
-rw-r--r--platform/android/core-files.json1
-rw-r--r--platform/android/src/style/layers/layer_manager.cpp25
-rw-r--r--platform/android/src/style/layers/layer_manager.hpp2
-rw-r--r--platform/android/src/style/layers/layer_manager_initialize.cpp36
4 files changed, 40 insertions, 24 deletions
diff --git a/platform/android/core-files.json b/platform/android/core-files.json
index 6e3efd019f..e5b470529c 100644
--- a/platform/android/core-files.json
+++ b/platform/android/core-files.json
@@ -64,6 +64,7 @@
"platform/android/src/style/layers/hillshade_layer.cpp",
"platform/android/src/style/layers/layer.cpp",
"platform/android/src/style/layers/layer_manager.cpp",
+ "platform/android/src/style/layers/layer_manager_initialize.cpp",
"platform/android/src/style/layers/line_layer.cpp",
"platform/android/src/style/layers/raster_layer.cpp",
"platform/android/src/style/layers/symbol_layer.cpp",
diff --git a/platform/android/src/style/layers/layer_manager.cpp b/platform/android/src/style/layers/layer_manager.cpp
index 2f023bd3ae..283fb66b20 100644
--- a/platform/android/src/style/layers/layer_manager.cpp
+++ b/platform/android/src/style/layers/layer_manager.cpp
@@ -6,33 +6,12 @@
#include <mbgl/style/conversion/filter.hpp>
#include <mbgl/style/conversion_impl.hpp>
-#include "background_layer.hpp"
-#include "circle_layer.hpp"
-#include "custom_layer.hpp"
-#include "fill_extrusion_layer.hpp"
-#include "fill_layer.hpp"
-#include "heatmap_layer.hpp"
-#include "hillshade_layer.hpp"
-#include "line_layer.hpp"
-#include "raster_layer.hpp"
-#include "symbol_layer.hpp"
-#include "fill_extrusion_layer.hpp"
-
namespace mbgl {
namespace android {
LayerManagerAndroid::LayerManagerAndroid() {
- addLayerType(std::make_unique<FillJavaLayerPeerFactory>());
- addLayerType(std::make_unique<LineJavaLayerPeerFactory>());
- addLayerType(std::make_unique<CircleJavaLayerPeerFactory>());
- addLayerType(std::make_unique<SymbolJavaLayerPeerFactory>());
- addLayerType(std::make_unique<RasterJavaLayerPeerFactory>());
- addLayerType(std::make_unique<BackgroundJavaLayerPeerFactory>());
- addLayerType(std::make_unique<HillshadeJavaLayerPeerFactory>());
- addLayerType(std::make_unique<FillExtrusionJavaLayerPeerFactory>());
- addLayerType(std::make_unique<HeatmapJavaLayerPeerFactory>());
- addLayerType(std::make_unique<CustomJavaLayerPeerFactory>());
+ initialize();
}
LayerManagerAndroid::~LayerManagerAndroid() = default;
@@ -123,6 +102,4 @@ LayerManager* LayerManager::get() noexcept {
return android::LayerManagerAndroid::get();
}
-const bool LayerManager::annotationsEnabled = true;
-
} // namespace mbgl
diff --git a/platform/android/src/style/layers/layer_manager.hpp b/platform/android/src/style/layers/layer_manager.hpp
index 807ded1737..1ad21d00be 100644
--- a/platform/android/src/style/layers/layer_manager.hpp
+++ b/platform/android/src/style/layers/layer_manager.hpp
@@ -29,6 +29,8 @@ public:
private:
LayerManagerAndroid();
+
+ void initialize();
/**
* @brief Enables a layer type for both JSON style and runtime API.
*/
diff --git a/platform/android/src/style/layers/layer_manager_initialize.cpp b/platform/android/src/style/layers/layer_manager_initialize.cpp
new file mode 100644
index 0000000000..5f1c6dd43f
--- /dev/null
+++ b/platform/android/src/style/layers/layer_manager_initialize.cpp
@@ -0,0 +1,36 @@
+#include "layer_manager.hpp"
+
+#include "background_layer.hpp"
+#include "circle_layer.hpp"
+#include "custom_layer.hpp"
+#include "fill_extrusion_layer.hpp"
+#include "fill_layer.hpp"
+#include "heatmap_layer.hpp"
+#include "hillshade_layer.hpp"
+#include "line_layer.hpp"
+#include "raster_layer.hpp"
+#include "symbol_layer.hpp"
+#include "fill_extrusion_layer.hpp"
+
+namespace mbgl {
+
+namespace android {
+
+void LayerManagerAndroid::initialize() {
+ addLayerType(std::make_unique<FillJavaLayerPeerFactory>());
+ addLayerType(std::make_unique<LineJavaLayerPeerFactory>());
+ addLayerType(std::make_unique<CircleJavaLayerPeerFactory>());
+ addLayerType(std::make_unique<SymbolJavaLayerPeerFactory>());
+ addLayerType(std::make_unique<RasterJavaLayerPeerFactory>());
+ addLayerType(std::make_unique<BackgroundJavaLayerPeerFactory>());
+ addLayerType(std::make_unique<HillshadeJavaLayerPeerFactory>());
+ addLayerType(std::make_unique<FillExtrusionJavaLayerPeerFactory>());
+ addLayerType(std::make_unique<HeatmapJavaLayerPeerFactory>());
+ addLayerType(std::make_unique<CustomJavaLayerPeerFactory>());
+}
+
+} // namespace android
+
+const bool LayerManager::annotationsEnabled = true;
+
+} // namespace mbgl