diff options
author | Brent Whitman <brent@pathym.com> | 2016-04-26 13:40:46 -0700 |
---|---|---|
committer | Minh Nguyễn <mxn@1ec5.org> | 2016-04-27 13:41:29 -0700 |
commit | a706a2a48d6ca2076c9c81a0cb0c088ae50d1496 (patch) | |
tree | 07076716389c63588d9d11ef418a0d13b79d7ea2 /platform/default/mbgl/storage | |
parent | 6ea257fa6adb0855f49623f1b4d1a241635f2457 (diff) | |
download | qtlocation-mapboxgl-a706a2a48d6ca2076c9c81a0cb0c088ae50d1496.tar.gz |
[ios, osx] Add a property for bytes used by offline tiles
Diffstat (limited to 'platform/default/mbgl/storage')
-rw-r--r-- | platform/default/mbgl/storage/offline_database.cpp | 29 | ||||
-rw-r--r-- | platform/default/mbgl/storage/offline_download.cpp | 10 |
2 files changed, 26 insertions, 13 deletions
diff --git a/platform/default/mbgl/storage/offline_database.cpp b/platform/default/mbgl/storage/offline_database.cpp index 6476834c1b..9bd731df74 100644 --- a/platform/default/mbgl/storage/offline_database.cpp +++ b/platform/default/mbgl/storage/offline_database.cpp @@ -608,24 +608,29 @@ OfflineRegionDefinition OfflineDatabase::getRegionDefinition(int64_t regionID) { OfflineRegionStatus OfflineDatabase::getRegionCompletedStatus(int64_t regionID) { OfflineRegionStatus result; - Statement stmt = getStatement( + Statement stmtRes = getStatement( "SELECT COUNT(*), SUM(size) FROM ( " " SELECT LENGTH(data) as size " " FROM region_resources, resources " " WHERE region_id = ?1 " " AND resource_id = resources.id " - " UNION ALL " - " SELECT LENGTH(data) as size " - " FROM region_tiles, tiles " - " WHERE region_id = ?1 " - " AND tile_id = tiles.id " ") "); - - stmt->bind(1, regionID); - stmt->run(); - - result.completedResourceCount = stmt->get<int64_t>(0); - result.completedResourceSize = stmt->get<int64_t>(1); + stmtRes->bind(1, regionID); + stmtRes->run(); + + Statement stmtTile = getStatement( + "SELECT COUNT(*), SUM(size) FROM ( " + " SELECT LENGTH(data) as size " + " FROM region_tiles, tiles " + " WHERE region_id = ?1 " + " AND tile_id = tiles.id " + ") "); + stmtTile->bind(1, regionID); + stmtTile->run(); + + result.completedTileSize = stmtTile->get<int64_t>(1); + result.completedResourceCount = stmtTile->get<int64_t>(0) + stmtRes->get<int64_t>(0); + result.completedResourceSize = result.completedTileSize + stmtRes->get<int64_t>(1); return result; } diff --git a/platform/default/mbgl/storage/offline_download.cpp b/platform/default/mbgl/storage/offline_download.cpp index e3fd10503d..d694235149 100644 --- a/platform/default/mbgl/storage/offline_download.cpp +++ b/platform/default/mbgl/storage/offline_download.cpp @@ -220,6 +220,10 @@ void OfflineDownload::ensureResource(const Resource& resource, std::function<voi status.completedResourceCount++; status.completedResourceSize += offlineResponse->second; + if (resource.kind == Resource::Kind::Tile) { + status.completedTileSize += offlineResponse->second; + } + observer->statusChanged(status); if (status.complete()) { @@ -247,7 +251,11 @@ void OfflineDownload::ensureResource(const Resource& resource, std::function<voi } status.completedResourceCount++; - status.completedResourceSize += offlineDatabase.putRegionResource(id, resource, onlineResponse); + uint64_t resourceSize = offlineDatabase.putRegionResource(id, resource, onlineResponse); + status.completedResourceSize += resourceSize; + if (resource.kind == Resource::Kind::Tile) { + status.completedTileSize += resourceSize; + } observer->statusChanged(status); |