Commit Graph

727 Commits

Author SHA1 Message Date
James Rich
dcaed8d866 fix(map): address review round 2 — precision circles, traceroute, i18n
- Fix precision circle radius: use zoom-based exponential interpolation
  to convert meters to pixels instead of treating meters as dp values
- Fix InlineMap precision circle: compute pixel radius from meters at
  the fixed zoom-15 display level
- Fix TracerouteLayers: wrap callback in LaunchedEffect to avoid state
  updates during composition; add nodes to remember keys for fresh hop
  labels; use relatedNodeNums.size for accurate total count
- Fix compass bearing: use epsilon comparison (±0.5°) instead of
  exact float equality to prevent flickering near north
- Localize EditWaypointDialog: replace hardcoded English strings with
  stringResource() using existing waypoint_edit/waypoint_new resources
- Format coordinates to 6 decimal places in waypoint position display
2026-04-13 12:28:11 -05:00
James Rich
c38a2a8da5 fix(map): address code review findings — precision, naming, icons, i18n
- Fix Int.toFloat() precision loss in track point filter by storing
  time as string in GeoJSON and using string-based equality comparison
- Rename MapStyle enum values to match actual tile styles: Satellite→Light
  (Positron), Hybrid→RoadMap (Americana), with updated string resources
- Reset bearingUpdate to IGNORE when gesture cancels location tracking
- Use LocationOn icon for ALWAYS_NORTH tracking mode instead of
  misleading LocationDisabled
- Remove dead isOfflineManagerAvailable() expect/actual declarations
- Replace hardcoded English strings in offline map UI with
  stringResource() calls backed by core:resources entries
2026-04-13 12:14:17 -05:00
James Rich
2cf4e8f80e feat(map): replace Google Maps + OSMDroid with unified MapLibre Compose Multiplatform
Replace the dual flavor-specific map implementations (Google Maps for google,
OSMDroid for fdroid) with a single MapLibre Compose Multiplatform implementation
in feature:map/commonMain, eliminating ~8,500 lines of duplicated code.

Key changes:
- Add maplibre-compose v0.12.1 dependency (KMP: Android, Desktop, iOS)
- Create unified MapViewModel with camera persistence via MapCameraPrefs
- Create MapScreen, MaplibreMapContent, NodeTrackLayers, TracerouteLayers,
  InlineMap, NodeTrackMap, TracerouteMap, NodeMapScreen in commonMain
- Create MapStyle enum with predefined OpenFreeMap tile styles
- Create GeoJsonConverters for Node/Waypoint/Position to GeoJSON
- Move TracerouteMapScreen from feature:node/androidMain to commonMain
- Wire navigation to use direct imports instead of CompositionLocal providers
- Delete 61 flavor-specific map files (google + fdroid source sets)
- Remove 8 CompositionLocal map providers from core:ui
- Remove SharedMapViewModel (replaced by new MapViewModel)
- Remove dead google-maps and osmdroid entries from version catalog
- Add MapViewModelTest with 10 test cases in commonTest

Baseline verified: spotlessCheck, detekt, assembleGoogleDebug, allTests all pass.
2026-04-13 11:40:48 -05:00
James Rich
048c74db13 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5105)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-13 12:37:53 +00:00
James Rich
39620d063b fix(nav): restore broken traceroute map navigation (#5104) 2026-04-13 12:25:21 +00:00
James Rich
4dd591af25 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5101)
Co-authored-by: github-merge-queue <118344674+github-merge-queue@users.noreply.github.com>
2026-04-13 11:04:58 +00:00
James Rich
b0c603c7ed fix(build): align AndroidX Compose versions with CMP and migrate to runComposeUiTest (#5096) 2026-04-13 02:49:11 +00:00
James Rich
e424d4d076 fix(build): add explicit compose-multiplatform-animation dependency (#5095) 2026-04-12 22:36:37 +00:00
James Rich
5c47256b3f test(prefs): migrate DataStore tests from androidHostTest to commonTest (#5092) 2026-04-12 20:45:19 +00:00
James Rich
a11dee42a7 test: migrate Compose UI tests from androidTest to commonTest (#5091) 2026-04-12 20:20:00 +00:00
James Rich
7ca7179197 build: migrate Compose dependencies to Compose Multiplatform (#5084) 2026-04-12 14:45:11 +00:00
James Rich
9281324be3 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5082) 2026-04-12 06:44:03 -05:00
James Rich
e85300531e refactor(transport): complete transport architecture overhaul — extract callback, wire BleReconnectPolicy, fix safety issues (#5080) 2026-04-12 04:22:18 +00:00
James Rich
9468bc6ebe refactor(service): unify dual connectionState flows into single source of truth (#5077) 2026-04-12 00:50:52 +00:00
James Rich
5e44cbd3a9 fix(data): make MeshConnectionManagerImpl.onConnectionChanged atomic (#5076) 2026-04-12 00:49:09 +00:00
James Rich
62264b10c6 refactor(model): remove ConnectionState helper methods and fix updateStatusNotification return type (#5074) 2026-04-11 23:41:34 +00:00
James Rich
174315b21f refactor(data): replace lateinit var scope + start() with constructor injection (#5075) 2026-04-11 23:39:29 +00:00
James Rich
172680fd46 fix(mqtt): replace yield() with proper connection readiness signal (#5073) 2026-04-11 23:38:33 +00:00
James Rich
a3c0a4832d fix(transport): Kable BLE audit + thread-safety, MQTT, and logging fixes across transport layers (#5071) 2026-04-11 22:56:29 +00:00
James Rich
40ea45a4fe fix(settings): hide Status Message config until firmware v2.8.0 (#5070) 2026-04-11 22:06:53 +00:00
James Rich
1fe3f4423d fix(ui): add missing @ParameterName annotations on actual rememberReadTextFromUri declarations (#5072) 2026-04-11 22:06:44 +00:00
James Rich
b3d0c97206 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5065) 2026-04-11 04:53:07 -05:00
James Rich
3794c79dae refactor: adopt M3 Expressive components from material3 1.11.0-alpha06 (#5063) 2026-04-11 02:10:03 +00:00
James Rich
a6423d0a0f feat(metrics): redesign position log with SelectableMetricCard and add CSV export to all metrics screens (#5062) 2026-04-11 01:26:26 +00:00
James Rich
9c8532f80d refactor: leverage new dependency features from recent updates (#5057) 2026-04-10 22:51:08 +00:00
James Rich
929e273978 fix(build): resolve all actionable compile-time warnings (#5058) 2026-04-10 22:42:30 +00:00
James Rich
ce32e640de fix(icons): replace outline (FILL=0) pathData with filled (FILL=1) from upstream Material Symbols (#5056) 2026-04-10 22:15:43 +00:00
James Rich
520fa717a9 refactor(metrics/map): DRY up charts, decompose MapView monoliths, add test coverage (#5049) 2026-04-10 20:54:09 +00:00
James Rich
56332f4d77 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5053) 2026-04-10 20:41:55 +00:00
James Rich
02f6fd67b8 fix: clean up flaky, duplicated, and misplaced tests; remove redundant deps (#5048) 2026-04-10 19:46:45 +00:00
James Rich
e70dabe94d test(navigation): add tests for NavigationConfig, DeepLinkRouter, and… (#5052) 2026-04-10 19:18:59 +00:00
James Rich
eec27cf6f7 chore(resources): remove 131 unused string keys (#5051) 2026-04-10 19:13:33 +00:00
James Rich
ae5f021323 refactor(navigation): adopt sealed interface routes with subclassesOfSealed() (#5043) 2026-04-10 15:33:57 +00:00
James Rich
1390a3cd4f ci: cache Robolectric SDK jars to prevent flaky SocketException failures (#5045) 2026-04-10 10:05:07 -05:00
James Rich
93e0b9ca57 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5042) 2026-04-10 14:41:56 +00:00
renovate[bot]
5c58709b0f chore(deps): update core/proto/src/main/proto digest to a4c649b (#5041)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-04-10 06:44:45 -05:00
James Rich
decda75852 style: update ic_no_cell and ic_place vector drawables (#5040) 2026-04-10 11:30:48 +00:00
James Rich
17e7c76583 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5035) 2026-04-10 10:44:08 +00:00
James Rich
ebf3b8272c fix(service): resolve MeshService crash from eager notification channel init (#5034) 2026-04-10 03:24:03 +00:00
James Rich
dba037466e refactor(icons): migrate to self-hosted VectorDrawable XMLs via MeshtasticIcons (#5030) 2026-04-10 01:35:52 +00:00
James Rich
5e57efeb06 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5031) 2026-04-09 19:48:16 -05:00
James Rich
d5a9e32b32 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5025) 2026-04-09 23:46:20 +00:00
James Rich
9c0e9b82d6 feat(charts): adopt Vico best practices, add sensor data, and migrate TracerouteLog (#5026) 2026-04-09 23:44:59 +00:00
James Rich
14b381c1eb fix: harden reliability, clean up KMP compliance, and improve code quality (#5023) 2026-04-09 18:21:46 +00:00
James Rich
1649e46dd5 chore(deps): remove 7 unused dependencies across modules (#5017) 2026-04-09 12:35:28 -05:00
James Rich
013a9afc96 chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#5014) 2026-04-09 16:34:33 +00:00
James Rich
975df02437 fix(tak): resolve frequent TAK client disconnections (#5015) 2026-04-09 16:24:50 +00:00
James Rich
ad08a6c7b7 feat(settings): add DNS support and fix UDP protocol toggle (#5013) 2026-04-09 14:23:31 +00:00
James Rich
60cc2f4237 fix: resolve bugs across connection, PKI, admin, packet flow, and stability subsystems (#5011) 2026-04-09 13:20:06 +00:00
James Rich
87d507eb6e chore: Scheduled updates (Firmware, Hardware, Translations, Graphs) (#4997) 2026-04-09 12:08:01 +00:00