diff options
Diffstat (limited to 'platform/default/mbgl/storage/offline_download.cpp')
-rw-r--r-- | platform/default/mbgl/storage/offline_download.cpp | 29 |
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; } } |