summaryrefslogtreecommitdiff
path: root/platform/default/mbgl/storage/offline_database.cpp
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/mbgl/storage/offline_database.cpp
parent6ea257fa6adb0855f49623f1b4d1a241635f2457 (diff)
downloadqtlocation-mapboxgl-a706a2a48d6ca2076c9c81a0cb0c088ae50d1496.tar.gz
[ios, osx] Add a property for bytes used by offline tiles
Diffstat (limited to 'platform/default/mbgl/storage/offline_database.cpp')
-rw-r--r--platform/default/mbgl/storage/offline_database.cpp29
1 files changed, 17 insertions, 12 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;
}