diff options
author | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-05-18 13:56:09 -0700 |
---|---|---|
committer | Asheem Mamoowala <asheem.mamoowala@mapbox.com> | 2017-06-01 15:38:01 -0700 |
commit | aa6647e910073edffbd1f3c087ed110927c38aeb (patch) | |
tree | b112a9f14610da986f6436e8a713ae8016e08aef /platform/default/mbgl/storage/offline_download.cpp | |
parent | c0c1028dcf57379db68a87d8d0a1780d9d901fe5 (diff) | |
download | qtlocation-mapboxgl-aa6647e910073edffbd1f3c087ed110927c38aeb.tar.gz |
[core] Offline support for Image Sources
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; } } |