From ae66e5af596f9b94d86c24fd3257f0eda87dacee Mon Sep 17 00:00:00 2001 From: Austin Payne Date: Sat, 3 Feb 2024 20:58:23 -0700 Subject: [PATCH 1/3] fix: map tiles being downloaded remotely twice The url returned by MKTileOverlay.url(forTilePath:) is subsequently used by MKTileOverlay.loadTile(at:result:) for download. In the case of a tile that was just cached by OfflineTileManager.persistLocally(path:) we now return the local file URL to avoid downloading the remote image twice. --- Meshtastic/Helpers/Map/OfflineTileManager.swift | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Meshtastic/Helpers/Map/OfflineTileManager.swift b/Meshtastic/Helpers/Map/OfflineTileManager.swift index 235ef0b7..ebf235ca 100644 --- a/Meshtastic/Helpers/Map/OfflineTileManager.swift +++ b/Meshtastic/Helpers/Map/OfflineTileManager.swift @@ -148,8 +148,9 @@ class OfflineTileManager: ObservableObject { try data.write(to: filename) } catch { print("💀 Save Tile Error = \(error)") + return url } - return url + return filename } private func filterTilesAlreadyExisting(paths: [MKTileOverlayPath]) -> [MKTileOverlayPath] { paths.filter { From 58fa4e26f18f13fd5e294340571158ced50b9030 Mon Sep 17 00:00:00 2001 From: Austin Payne Date: Sat, 3 Feb 2024 20:50:11 -0700 Subject: [PATCH 2/3] fix: don't fetch tiles greater than specified upper bound --- Meshtastic/Helpers/Map/OfflineTileManager.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Meshtastic/Helpers/Map/OfflineTileManager.swift b/Meshtastic/Helpers/Map/OfflineTileManager.swift index 235ef0b7..b8ce4b70 100644 --- a/Meshtastic/Helpers/Map/OfflineTileManager.swift +++ b/Meshtastic/Helpers/Map/OfflineTileManager.swift @@ -110,7 +110,7 @@ class OfflineTileManager: ObservableObject { if fileManager.fileExists(atPath: tilesUrl.path) { return tilesUrl } else { - if UserDefaults.enableOfflineMaps { // Get and persist newTile + if UserDefaults.enableOfflineMaps, UserDefaults.mapTileServer.zoomRange.contains(path.z) { // Get and persist newTile return persistLocally(path: path) } else { // Else display empty tile (transparent over Maps tiles) return Bundle.main.url(forResource: "alpha", withExtension: "png")! From 8cd79053798e8f36ef17230950d7e542128a96fd Mon Sep 17 00:00:00 2001 From: Austin Payne Date: Wed, 31 Jan 2024 23:33:50 -0700 Subject: [PATCH 3/3] fix: inverted map options sheet resizing --- Meshtastic/Views/Nodes/NodeMap.swift | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Meshtastic/Views/Nodes/NodeMap.swift b/Meshtastic/Views/Nodes/NodeMap.swift index 96697ddf..d5ce3676 100644 --- a/Meshtastic/Views/Nodes/NodeMap.swift +++ b/Meshtastic/Views/Nodes/NodeMap.swift @@ -223,7 +223,7 @@ struct NodeMap: View { .padding(.bottom) #endif } - .presentationDetents([UserDefaults.enableOfflineMaps || UserDefaults.enableOverlayServer ? .large : .medium]) + .presentationDetents([enableOfflineMaps || enableOverlayServer ? .large : .medium]) .presentationDragIndicator(.visible) } }