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 | |
parent | c0c1028dcf57379db68a87d8d0a1780d9d901fe5 (diff) | |
download | qtlocation-mapboxgl-aa6647e910073edffbd1f3c087ed110927c38aeb.tar.gz |
[core] Offline support for Image Sources
Diffstat (limited to 'platform/default')
-rw-r--r-- | platform/default/mbgl/storage/offline_download.cpp | 29 | ||||
-rw-r--r-- | platform/default/online_file_source.cpp | 1 |
2 files changed, 23 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; } } diff --git a/platform/default/online_file_source.cpp b/platform/default/online_file_source.cpp index a72b6f4efc..d7649a348c 100644 --- a/platform/default/online_file_source.cpp +++ b/platform/default/online_file_source.cpp @@ -189,6 +189,7 @@ std::unique_ptr<AsyncRequest> OnlineFileSource::request(const Resource& resource switch (resource.kind) { case Resource::Kind::Unknown: + case Resource::Kind::Image: break; case Resource::Kind::Style: |