diff options
Diffstat (limited to 'platform')
-rw-r--r-- | platform/default/mbgl/storage/offline_download.cpp | 24 | ||||
-rw-r--r-- | platform/default/mbgl/storage/offline_download.hpp | 3 |
2 files changed, 20 insertions, 7 deletions
diff --git a/platform/default/mbgl/storage/offline_download.cpp b/platform/default/mbgl/storage/offline_download.cpp index 36b6f5d502..cda00bf8df 100644 --- a/platform/default/mbgl/storage/offline_download.cpp +++ b/platform/default/mbgl/storage/offline_download.cpp @@ -229,12 +229,8 @@ void OfflineDownload::ensureResource(const Resource& resource, std::function<voi return; } - - if (resource.kind == Resource::Kind::Tile - && util::mapbox::isMapboxURL(resource.url) - && offlineDatabase.offlineMapboxTileCountLimitExceeded()) { - observer->mapboxTileCountLimitExceeded(offlineDatabase.getOfflineMapboxTileCountLimit()); - setState(OfflineRegionDownloadState::Inactive); + + if (checkTileCountLimit(resource)) { return; } @@ -256,6 +252,10 @@ void OfflineDownload::ensureResource(const Resource& resource, std::function<voi observer->statusChanged(status); + if (checkTileCountLimit(resource)) { + return; + } + if (status.complete()) { setState(OfflineRegionDownloadState::Inactive); } @@ -263,4 +263,16 @@ void OfflineDownload::ensureResource(const Resource& resource, std::function<voi }); } +bool OfflineDownload::checkTileCountLimit(const Resource& resource) { + if (resource.kind == Resource::Kind::Tile + && util::mapbox::isMapboxURL(resource.url) + && offlineDatabase.offlineMapboxTileCountLimitExceeded()) { + observer->mapboxTileCountLimitExceeded(offlineDatabase.getOfflineMapboxTileCountLimit()); + setState(OfflineRegionDownloadState::Inactive); + return true; + } + + return false; +} + } // namespace mbgl diff --git a/platform/default/mbgl/storage/offline_download.hpp b/platform/default/mbgl/storage/offline_download.hpp index d5ba801540..be8e90b251 100644 --- a/platform/default/mbgl/storage/offline_download.hpp +++ b/platform/default/mbgl/storage/offline_download.hpp @@ -49,7 +49,8 @@ private: */ void ensureResource(const Resource&, std::function<void (Response)> = {}); void ensureTiles(SourceType, uint16_t, const SourceInfo&); - + bool checkTileCountLimit(const Resource& resource); + int64_t id; OfflineRegionDefinition definition; OfflineDatabase& offlineDatabase; |