Commit Graph

97 Commits

Author SHA1 Message Date
stopflock
2d00d7a8fb bump ver 2026-03-12 22:30:16 -05:00
stopflock
4d1032e56d ver, changelog 2026-03-11 23:22:17 -05:00
stopflock
de65cecc6a bump ver 2026-03-07 16:51:38 -06:00
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
stopflock
30f546be29 Update pubspec.yaml
bump version
2026-02-25 19:27:59 -06:00
Doug Borg
b6bcd23667 chore(android): bump Dart SDK floor, desugar_jdk_libs, and fix Kotlin DSL deprecation
- Bump Dart SDK constraint from >=3.8.0 to >=3.10.3 to match resolved dependency floor
- Upgrade desugar_jdk_libs from 2.0.4 to 2.1.5 (adds Stream.toList(), better locale support)
- Migrate deprecated kotlinOptions { jvmTarget } to kotlin { compilerOptions { jvmTarget } }
- Remove stale comments and non-breaking space characters

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 15:32:00 -07:00
Doug Borg
dba375c63d chore(deps): update app_links and package_info_plus to latest major versions
Upgrade packages:
- app_links: ^6.1.4 → ^7.0.0 (backward compatible with v6)
- package_info_plus: ^8.0.0 → ^9.0.0 (build tooling only, no Dart API changes)

Bump Android build tooling to latest Flutter 3.38-compatible versions:
- AGP: 8.9.1 → 8.11.1
- Gradle: 8.12 → 8.14
- Kotlin: 2.1.0 → 2.2.20

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 15:20:50 -07:00
Doug Borg
206b3afe9d chore(deps): move flutter_web_auth_2 and flutter_secure_storage to stable releases
Move auth-critical packages from pre-release pins to stable:
- flutter_web_auth_2: 5.0.0-alpha.3 → ^5.0.1
- flutter_secure_storage: 10.0.0-beta.4 → ^10.0.0
- oauth2_client: 4.2.0 → 4.2.3 (auto-resolved, was blocked by pre-release pins)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 09:45:38 -07:00
Doug Borg
775148cfb7 Bump version to 2.7.2+48
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 19:31:31 -07:00
stopflock
2dca311d2a changelog, version 2026-02-14 14:42:39 -06:00
stopflock
2e0dcb1b2b bump version 2026-02-09 23:59:08 -06:00
Doug Borg
4a342aee9d Bump Dart SDK constraint to >=3.8.0 and document Flutter 3.35+ requirement
The RadioGroup widget (merged via PR #35) requires Flutter 3.35+ /
Dart 3.8+. The old constraint (>=3.5.0) allowed older SDKs that don't
have RadioGroup, causing cryptic build errors instead of a clear
version mismatch from pub get.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 13:54:42 -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
Doug Borg
73160c32de Add mocktail dev dependency and fix test state leak
Address PR review comments:
- Add mocktail and flutter_test to dev_dependencies in pubspec.yaml
- Add tearDown to reset AppState.instance between tests

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 11:35:28 -07:00
stopflock
2620c8758e dev mode, imperial units incl. custom scalebar 2026-02-06 20:28:08 -06:00
stopflock
ff5821b184 Prevent no-change edit submissions 2026-02-01 16:51:35 -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
1dd0258c0b cleanup, bump version 2026-01-31 17:35:42 -06:00
stopflock
69ebd43e0d bump to 2.6 2026-01-30 21:37:12 -06:00
stopflock
9621e5f35a "Get more" link in profile dropdown, suggest identify page when creating profile 2026-01-30 12:56:50 -06:00
Heath Dutton🕴️
33ae6473bb pass viewbox to nominatim search for location-biased results 2026-01-29 10:42:56 -05: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
1873d6e768 profile import from deeplinks 2026-01-28 15:20:25 -06:00
stopflock
ae354c43a4 drop approx location support, restore follow me mode on sheet close 2025-12-24 15:29:32 -06:00
stopflock
34eac41a96 bump ver 2025-12-23 18:18:16 -06:00
stopflock
8b44b3abf5 Better loading indicator 2025-12-23 16:17:06 -06:00
stopflock
f8643da8e2 Refactor GPS again, fix losing GPS lock 2025-12-17 14:49:13 -06:00
stopflock
8493679526 Nodes stay dimmed while one is selected 2025-12-11 20:30:14 -06:00
stopflock
656dbc8ce8 positioning tutorial 2025-12-11 16:01:45 -06:00
stopflock
ca7bfc01ad roadmap, version 2025-12-10 15:29:16 -06:00
stopflock
e6b18bf89b NSI and tag refinement 2025-12-10 12:52:20 -06:00
stopflock
6ed30dcff8 v2 2025-12-07 17:53:21 -06:00
stopflock
98e7e499d4 Pin max nodes indicator to screen, not map. Clean up cruft. 2025-12-07 17:51:23 -06:00
stopflock
405ec220d0 Fix map centering when looking at tag sheets, transition to edit sheet 2025-12-07 14:48:45 -06:00
stopflock
56d55bb922 bump version 2025-12-07 11:37:56 -06:00
stopflock
16b8acad3a Suspected locations database 2025-12-07 10:23:36 -06:00
stopflock
4fba26ff55 Route distance timeout warning 2025-12-06 15:07:34 -06:00
stopflock
8c4f53ff7b nav UX tweaks 2025-12-05 16:36:04 -06:00
stopflock
24214e94f9 Fix node edge blinking, prevent nav+edit conflicts, smarter follow-me w/rt nav 2025-12-05 15:27:01 -06:00
stopflock
b176724fc5 Configurable nav timeout 2025-12-03 15:04:43 -06:00
stopflock
db5c7311b1 Break up the home_screen monopoly 2025-12-02 22:28:31 -06:00
stopflock
0d13fdee37 limit download max zoom to current layer max zoom 2025-12-02 14:32:42 -06:00
stopflock
dccafc898b Fix changesets not getting closed, other updates to queue mechanism 2025-12-01 15:01:48 -06:00
stopflock
df0377b41f Get rid of double cache, filesystem checking for every tile fetch, swap out http interception for a fluttermap tileprovider that calls map_data, fix node rendering limit 2025-11-28 21:48:17 -06:00
stopflock
45f1635e10 Get rid of double cache layer, remove tiles from network status indicator, fix status callbacks from split fetches, use tileprovider instead of http catching. 2025-11-24 18:28:36 -06:00
stopflock
52af77e1ed Add bing sat imagery 2025-11-22 22:00:56 -06:00
stopflock
961465ebb5 Popup message before submitting first node 2025-11-22 14:56:05 -06:00
stopflock
7ff04851f4 Fix tile loading finally 2025-11-22 13:22:17 -06:00