summaryrefslogtreecommitdiff
path: root/platform/default
diff options
context:
space:
mode:
authorBrent Whitman <brent@pathym.com>2016-04-26 13:40:46 -0700
committerMinh Nguyễn <mxn@1ec5.org>2016-04-27 13:41:29 -0700
commita706a2a48d6ca2076c9c81a0cb0c088ae50d1496 (patch)
tree07076716389c63588d9d11ef418a0d13b79d7ea2 /platform/default
parent6ea257fa6adb0855f49623f1b4d1a241635f2457 (diff)
downloadqtlocation-mapboxgl-a706a2a48d6ca2076c9c81a0cb0c088ae50d1496.tar.gz
[ios, osx] Add a property for bytes used by offline tiles
Diffstat (limited to 'platform/default')
-rw-r--r--platform/default/mbgl/storage/offline_database.cpp29
-rw-r--r--platform/default/mbgl/storage/offline_download.cpp10
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);