summaryrefslogtreecommitdiff
path: root/platform
diff options
context:
space:
mode:
authorAsheem Mamoowala <asheem.mamoowala@mapbox.com>2017-05-18 13:56:09 -0700
committerAsheem Mamoowala <asheem.mamoowala@mapbox.com>2017-06-01 15:38:01 -0700
commitaa6647e910073edffbd1f3c087ed110927c38aeb (patch)
treeb112a9f14610da986f6436e8a713ae8016e08aef /platform
parentc0c1028dcf57379db68a87d8d0a1780d9d901fe5 (diff)
downloadqtlocation-mapboxgl-aa6647e910073edffbd1f3c087ed110927c38aeb.tar.gz
[core] Offline support for Image Sources
Diffstat (limited to 'platform')
-rw-r--r--platform/default/mbgl/storage/offline_download.cpp29
-rw-r--r--platform/default/online_file_source.cpp1
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: