67 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 bc671c4efe Fix phantom FOVs, reorderable profiles 2026-03-02 12:38:49 -06:00
Doug Borg 037165653c Fix lint warnings and cleanup unused code after RadioGroup migration
Remove unused imports, fields, variables, and dead code introduced
during the RadioGroup widget migration and prior changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:36:18 -07:00
Doug Borg 4fddd8e807 Replace print() with debugPrint() across codebase
Fixes avoid_print lint warnings by using debugPrint which respects
release mode and avoids console overflow on mobile platforms.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-02-08 14:23:07 -07:00
Doug Borg c712aba724 Add flutter_lints and fix analyzer errors, dead code, and unused imports 2026-02-08 14:23:06 -07:00
stopflock 8804fdadf4 Remove special "existing tags" profile case; existing tags profile now empty. 2026-02-06 09:56:08 -06:00
stopflock c50d43e00c Pass through all extraneous tags on an existing node, always. Strip out special case for "existing tags" profile, replace with an empty temp profile so all can be treated the same. 2026-02-05 13:21:54 -06:00
stopflock aba919f8d4 Fix submissions using existing tags profile by stripping non-xml-safe chars. Allow customizing changeset comment. 2026-02-01 22:22:31 -06:00
stopflock ba3b844c1e "existing tags" temp profile when editing, "existing operator" profile when such tags exist, full editing of existing nodes via refine tags 2026-02-01 14:50:47 -06:00
stopflock 3fc3a72cde Fixes for 360-deg FOVs 2026-01-28 20:21:25 -06:00
stopflock 1d65d5ecca v2.4.1, adds profile import via deeplink, moves profile save button, fixes FOV clearing, disable direction slider while submitting with 360-fov profile 2026-01-28 18:13:49 -06:00
stopflock eca227032d fix camera:mount tags on default profiles 2025-12-10 15:48:21 -06:00
stopflock e6b18bf89b NSI and tag refinement 2025-12-10 12:52:20 -06:00
stopflock 5043ef3e34 Repopulate node cache from pending 2025-12-02 19:16:33 -06:00
stopflock 9e07439f08 Get rid of default profiles FOV 2025-12-01 15:44:54 -06:00
stopflock dccafc898b Fix changesets not getting closed, other updates to queue mechanism 2025-12-01 15:01:48 -06:00
stopflock 3868236816 Improve subdomain notation, fix error catching for xyz in tile URL 2025-11-22 22:26:04 -06:00
stopflock 52af77e1ed Add bing sat imagery 2025-11-22 22:00:56 -06:00
stopflock 9319bbda48 Support FOV range notation: 0-360, 90-270, 10-45;90-125 2025-11-21 19:25:34 -06:00
stopflock 95fad14261 min zoom 1, max cameras 8, extract node from way 2025-11-19 22:46:09 -06:00
stopflock 192c6e5158 Disallow editing location of nodes attached to ways/relations 2025-11-16 00:17:53 -06:00
stopflock ac53f7f74e Reorder builtin profiles 2025-11-16 00:11:42 -06:00
stopflock 5b9810b9de Add Rekor, Axon profiles 2025-11-15 20:37:05 -06:00
stopflock c9a7045212 Accept cardinal type directions in osm data 2025-10-29 12:53:56 -05:00
stopflock d9f415c527 Multiple cameras on one pole 2025-10-29 12:17:16 -05:00
stopflock 1993714752 Show all fields from suspected locations CSV in details sheet 2025-10-28 20:45:51 -05:00
stopflock b80e1094af deletions no longer using stub profile, more handling of builtin profiles by lists. 2025-10-24 18:28:39 -05:00
stopflock 0db4c0f80d all profiles as lists, better handling, stop using a fallback profile for broken submissions without one 2025-10-24 17:31:04 -05:00
stopflock f1f145a35f Operator profiles as list. Add simon property group. 2025-10-24 17:11:43 -05:00
stopflock c8ae925dc1 Add new builtin profiles, better handline of initialization, bump version 2025-10-24 16:23:09 -05:00
stopflock b00db130d7 Suspected location localizations, credit alprwatch 2025-10-07 14:03:11 -05:00
stopflock 4a44ab96d6 Sorta working suspected locations 2025-10-06 21:07:08 -05:00
stopflock cc0386ee97 UX and bones of suspected locations 2025-10-06 19:36:54 -05:00
stopflock 111bdc4254 Fix opentopomap x/y, allow searching in release when not offline 2025-10-05 16:48:25 -05:00
stopflock 731cdc4a4b Remove USGS tile types that only to go zoom 8 2025-10-05 15:25:14 -05:00
stopflock a08d61fb98 Add other providers, max zoom per tile type 2025-10-05 15:08:27 -05:00
stopflock 5976ab4bab max zoom per tile type 2025-10-05 13:04:48 -05:00
stopflock 5568173c6e update README, remove esri map provider 2025-10-05 12:44:46 -05:00
stopflock b636ab4d26 Remove google tile provider 2025-10-05 01:01:02 -05:00
stopflock 4e072a34c0 Search address / POI 2025-10-02 03:30:36 -05:00
stopflock 71fa212d71 More camera -> node, notifications for approaching 2025-09-29 19:22:22 -05:00
stopflock a05abd8bd8 Deletions! 2025-09-28 21:44:28 -05:00
stopflock 4053c9b39b use real node id for pending uploads, more camera -> node 2025-09-28 20:20:00 -05:00
stopflock a8ac237317 more cameras -> nodes 2025-08-29 18:20:42 -05:00
stopflock 208b3486f3 first pass at operator profiles 2025-08-29 15:09:19 -05:00
stopflock 29031b1372 dont let user edit editable....... lol and make some builtins editable 2025-08-29 14:08:47 -05:00
stopflock d2a3e96a86 allow editing of certain builtin profiles 2025-08-29 13:48:08 -05:00
stopflock 395ef77fe3 gunshot detection - direction optional as defined by profile 2025-08-29 13:47:32 -05:00
stopflock c42d3afd0b Fix edit submission (addnode version to xml changeset) and improve queue UI upon successful submission. And bump version - patch for 0.9.4. 2025-08-28 23:29:34 -05:00
stopflock 9c05f1d7a9 add upload mode to queue entries to prevent cross-submission 2025-08-28 13:51:44 -05:00