Commit Graph

18 Commits

Author SHA1 Message Date
Doug Borg
2d92214bed Add offline-first tile system with per-provider caching and error retry
- Add ServicePolicy framework with OSM-specific rate limiting and TTL
- Add per-provider disk tile cache (ProviderTileCacheStore) with O(1)
  lookup, oldest-modified eviction, and ETag/304 revalidation
- Rewrite DeflockTileProvider with two paths: common (NetworkTileProvider)
  and offline-first (disk cache -> local tiles -> network with caching)
- Add zoom-aware offline routing so tiles outside offline area zoom ranges
  use the efficient common path instead of the overhead-heavy offline path
- Fix HTTP client lifecycle: dispose() is now a no-op for flutter_map
  widget recycling; shutdown() handles permanent teardown
- Add TileLayerManager with exponential backoff retry (2s->60s cap),
  provider switch detection, and backoff reset
- Guard null provider/tileType in download dialog with localized error
- Fix Nominatim cache key to use normalized viewbox values
- Comprehensive test coverage (1800+ lines across 6 test files)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-07 12:34:01 -07:00
stopflock
2b26bf9188 Preview tile fetching on startup, offline area refresh, more cameras->nodes 2025-09-29 21:28:40 -05:00
stopflock
71fa212d71 More camera -> node, notifications for approaching 2025-09-29 19:22:22 -05:00
stopflock
4ad33d17e0 Remove world map area 2025-09-28 19:00:07 -05:00
stopflock
7c49b38230 Fix offline area size estimates, zoom level metadata display 2025-09-28 17:43:03 -05:00
stopflock
0cbcec7017 improve data indicator, offline fetching, offline area loading 2025-09-28 17:00:34 -05:00
stopflock
fa16e3c299 phase 1 2025-08-30 23:17:08 -05:00
stopflock
a8ac237317 more cameras -> nodes 2025-08-29 18:20:42 -05:00
stopflock
84e057c986 fix camera caching and filtering from offline areas - in theory 2025-08-26 19:17:45 -05:00
stopflock
a3edcfc2de finalize code paths for offline areas, caching, in light of multiple tile providers 2025-08-26 17:52:14 -05:00
stopflock
9e620ef9e4 Consolidate / dedupe some code 2025-08-24 17:46:58 -05:00
stopflock
bedfdcca6e fetch tiles from selected provider 2025-08-24 16:13:50 -05:00
stopflock
f1c73a5e55 settings area metadata, offline areas support for tile types 2025-08-24 15:31:02 -05:00
stopflock
1f3849cd84 break up offlin areas 2025-08-21 21:50:30 -05:00
stopflock
268c9ebb3a min zoom for offline areas is now max world zoom + 1 2025-08-19 17:54:27 -05:00
stopflock
fa3b8b3456 Offline areas download an extra ring of tiles at each zoom level 2025-08-11 01:35:11 -05:00
stopflock
63675bd18a tbh not sure, left for a bit. sorry. pretty sure closer than last commit.. 2025-08-09 22:44:24 -05:00
stopflock
f8b4134bd3 break up offline area monopoly 2025-08-07 20:52:24 -05:00