summaryrefslogtreecommitdiff
path: root/platform/default/mbgl/storage/offline_download.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'platform/default/mbgl/storage/offline_download.cpp')
-rw-r--r--platform/default/mbgl/storage/offline_download.cpp29
1 files changed, 22 insertions, 7 deletions
diff --git a/platform/default/mbgl/storage/offline_download.cpp b/platform/default/mbgl/storage/offline_download.cpp
index 99b4447711..980561e43a 100644
--- a/platform/default/mbgl/storage/offline_download.cpp
+++ b/platform/default/mbgl/storage/offline_download.cpp
@@ -8,6 +8,7 @@
#include <mbgl/style/sources/vector_source.hpp>
#include <mbgl/style/sources/raster_source.hpp>
#include <mbgl/style/sources/geojson_source.hpp>
+#include <mbgl/style/sources/image_source.hpp>
#include <mbgl/style/conversion/json.hpp>
#include <mbgl/style/conversion/tileset.hpp>
#include <mbgl/text/glyph.hpp>
@@ -111,8 +112,16 @@ OfflineRegionStatus OfflineDownload::getStatus() const {
}
case SourceType::GeoJSON: {
- auto* geojsonSource = source->as<GeoJSONSource>();
- if (geojsonSource->getURL()) {
+ const auto& geojsonSource = *source->as<GeoJSONSource>();
+ if (geojsonSource.getURL()) {
+ result.requiredResourceCount += 1;
+ }
+ break;
+ }
+
+ case SourceType::Image: {
+ const auto& imageSource = *source->as<ImageSource>();
+ if (!imageSource.getURL().empty()) {
result.requiredResourceCount += 1;
}
break;
@@ -120,7 +129,6 @@ OfflineRegionStatus OfflineDownload::getStatus() const {
case SourceType::Video:
case SourceType::Annotations:
- case SourceType::Image:
break;
}
}
@@ -188,17 +196,24 @@ void OfflineDownload::activateDownload() {
}
case SourceType::GeoJSON: {
- const auto* geojsonSource = static_cast<const GeoJSONSource*>(source.get());
+ const auto& geojsonSource = *source->as<GeoJSONSource>();
+ if (geojsonSource.getURL()) {
+ queueResource(Resource::source(*geojsonSource.getURL()));
+ }
+ break;
+ }
- if (geojsonSource->getURL()) {
- queueResource(Resource::source(*geojsonSource->getURL()));
+ case SourceType::Image: {
+ const auto& imageSource = *source->as<ImageSource>();
+ std::string imageUrl = imageSource.getURL();
+ if (!imageUrl.empty()) {
+ queueResource(Resource::image(imageUrl));
}
break;
}
case SourceType::Video:
case SourceType::Annotations:
- case SourceType::Image:
break;
}
}