diff options
Diffstat (limited to 'platform/default/mbgl/storage/offline_download.cpp')
-rw-r--r-- | platform/default/mbgl/storage/offline_download.cpp | 24 |
1 files changed, 18 insertions, 6 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 |