Commit Graph

404 Commits

Author SHA1 Message Date
Janez T
3c08e150ef feat: align fast-GPS beacons with MeshUI firmware (16-byte format + cadence parity)
Switch the fast-GPS beacon to the firmware's canonical 16-byte wire format
(magic, key6, lat/lon microdegrees, speed km/h) — no on-wire timestamp; the
receiver stamps its own RX time. Drops compatibility with the older 19-byte app
format.

Mirror the firmware's adaptive send cadence in the app-fallback path
(LocationTrackingService): anchor + dwell motion hysteresis, EMA ground speed,
9-min stationary keepalive, fix-quality (accuracy) gate, and a post-RX hold-off
to avoid channel collisions. Parked nodes now beacon the stable anchor instead
of GPS wander.

Add the fast_gps_region config: region-scope picker in settings backed by the
firmware's fast_gps_region / fast_gps_regions custom vars.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 13:17:02 +02:00
Janez T
3283d4ca20 docs: Add Windows BLE pairing instructions to README
Document pairing the MeshCore radio via the Windows 11 system Bluetooth
menu (with PIN) before connecting in-app, per user report.

Fixes #41

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:41:35 +02:00
Janez T
bdbceece75 fix: Normalize raw transport path for firmware v1.15 photo/audio transfer
CMD_SEND_RAW_DATA (0x19) was passed the encoded MeshCore route descriptor
(e.g. 0x41 for a 1-hop 2-byte-hash route), but the v1.15 companion firmware
raw-data handler treats the path byte as a legacy literal hop count, not an
encoded descriptor. It misread 0x41 as "65 path bytes" and rejected the
command (ERROR: Unsupported command), so media fetch always failed while
normal messaging worked.

- Add ContactRouteCodec.toLegacyRawPath() converting encoded descriptor +
  path into legacy format (literal hop count + first byte of each hop hash).
- Apply it in ConnectionProvider.sendRawVoicePacket, the single chokepoint
  all raw media (voice/image fragments, swarm, route probes) flows through.
- Pace served fragments 350ms apart to avoid firmware "ERROR: Table full"
  when bursting many raw packets.
- Tests for the descriptor conversion.

Fixes #43

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-24 10:38:05 +02:00
Janez T
365bd76cbc feat: Add Mapy.cz Outdoor (OSM + LIDAR) base map layer
- New MapLayerType.mapyOutdoor with Referer header support
  (tile server rejects requests without mapy.com Referer)
- Headered layers get a dedicated NetworkTileProvider sharing
  the offline tile cache
- Offline region downloads pass layer headers through
  TileDownloadService

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
v2026.0613.2 MeshCore_SAR
2026-06-12 17:28:56 +02:00
Janez T
ba27843166 feat: UX polish, localization, advert relocation, and map filter fixes
- i18n: translate connection screen + chat tab keys into 13 locales;
  add "Send my contact" (advert) strings in all locales
- feat: move self-advert from home header into composer "+" action menu
  (new lib/utils/advert_helper.dart, always shows Flood/Direct sheet)
- fix: hide-repeaters map toggle was bypassed in simple mode
- fix: simple mode map now shows only favourite chat contacts
- fix: wrap ListTiles in Material (contact_tile secondary actions,
  inferred contact group card) to satisfy Flutter ink assertions
- device-authoritative contact/channel sync and UX review fixes

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-06-12 10:01:10 +02:00
Janez T
3e1113035d Merge branch 'chore/app-store-screenshots' 2026-05-27 10:53:43 +02:00
Janez T
89359c5e34 Merge remote-tracking branch 'origin/main' 2026-05-27 10:53:31 +02:00
Janez T
0406b59d3b chore: Add App Store screenshots
Refs:
2026-05-27 10:45:51 +02:00
Janez Troha
c176ed0775 Update iOS TestFlight link in README 2026-05-22 12:46:29 +02:00
Janez T
6062f91c2d Throttle message notifications during sync 2026-05-10 17:48:13 +02:00
Janez T
e1400cf1ec feat: Modernize map selection and tile cache 2026-04-26 08:41:50 +02:00
Janez Troha
b040a8bd3a Merge pull request #39 from dz0ny/feat/reported-issues-ci
Feat/reported issues ci
2026-04-26 08:40:12 +02:00
Janez T
c847bd6465 feat: Add UTM coordinates #38
ref:
2026-04-26 08:30:28 +02:00
Janez T
132a576785 fix: Split trail recording #32
ref:
2026-04-26 08:30:28 +02:00
Janez T
9b8b1bf473 fix: Add background service #37
ref: #31
2026-04-26 08:30:28 +02:00
Janez T
0008eff1b8 fix: Stabilize reported tests #31
ref: #32 #37
2026-04-26 08:30:28 +02:00
Janez T
2fe125d6ba chore: Add Play release cycle #31
ref:
2026-04-26 08:30:28 +02:00
Janez T
5834454087 feat: Add UTM coordinates #38
ref:
2026-04-26 08:28:41 +02:00
Janez T
73e78691ed fix: Split trail recording #32
ref:
2026-04-26 08:24:11 +02:00
Janez T
d067095345 fix: Add background service #37
ref: #31
2026-04-26 08:24:09 +02:00
Janez T
0b463f6454 fix: Stabilize reported tests #31
ref: #32 #37
2026-04-26 08:24:07 +02:00
Janez T
a472b0c05c chore: Add Play release cycle #31
ref:
2026-04-26 08:24:04 +02:00
Janez T
4181b33da1 Fix echo metadata and bump build number #123 2026-04-26 08:02:53 +02:00
Janez T
f9dfdc2340 fix: Add manual TCP connect flow 2026-04-18 08:59:36 +02:00
Janez T
b333b3737e feat: Open per-metric sensor history v2026.0412.1 2026-04-12 21:07:53 +02:00
Janez T
7245d76e17 chore: Bump iOS build number 2026-04-08 18:45:52 +02:00
Janez T
7a76ba97f8 fix: Reset test viewport state v2026.0408.1 2026-04-08 18:43:37 +02:00
Janez T
d00198c829 Fix radio preset resync 2026-04-08 18:43:12 +02:00
Janez T
e6cd59e96f fix: Remove GPS interval option 2026-04-08 18:41:58 +02:00
Janez T
b863cda139 fix: Prefer cached map tiles offline ref: 2026-04-08 09:46:31 +02:00
Janez T
4bd7f36b98 chore: Bump iOS build version 2026-04-07 14:21:39 +02:00
Janez T
44a668df93 fix: Reset fallback sharing state 2026-04-07 14:04:45 +02:00
Janez T
e5514b4ef9 Fix fast location cadence ref: 2026-04-07 10:35:31 +02:00
Janez T
d92e52c5c2 fix: Dedupe replayed messages #123 2026-04-06 21:00:07 +02:00
Janez T
daa88fb471 chore: Update fastlane report 2026-04-06 20:55:27 +02:00
Janez T
c182813c35 fix: Add manual TCP IP 2026-04-05 21:51:17 +02:00
Janez T
81944bfd3c feat: Refresh generated API snapshots #0 v2026.0405.2 2026-04-05 21:48:19 +02:00
Janez T
43eb857663 Bump iOS build to 133 v2026.0405.1 2026-04-05 20:07:19 +02:00
Janez T
faa396769e feat: Add buzzer alerts toggle 2026-04-05 20:02:54 +02:00
Janez T
1a35b790a7 feat: Add GPS diagnostics #0 2026-04-05 19:58:34 +02:00
Janez T
573921e002 fix: Clarify shared location labels and onboarding copy #123 2026-04-05 19:54:48 +02:00
Janez T
14a41b210e feat: Add manual TCP IP entry 2026-04-05 19:45:16 +02:00
Janez T
56a7fa2fc6 fix: Use location pin icon 2026-04-05 19:39:40 +02:00
Janez T
7f4b4c4560 feat: Add message location details 2026-04-05 19:33:41 +02:00
Janez T
7f7f4aa975 fix: Widen worker charts 2026-04-05 18:01:05 +02:00
Janez T
1baab06627 fix: Widen worker stats graph v2026.0404.1 2026-04-04 20:20:36 +02:00
Janez T
5320fa1a2b fix: Guard null history decode #123 2026-04-04 15:58:21 +02:00
Janez T
512b64db9f fix: Preserve custom path priority 2026-04-04 15:57:41 +02:00
Janez T
4690ceead1 chore: Remove reporter map dependencies 2026-04-04 10:01:03 +02:00
Janez T
d431a79aa8 Fix: Limit stats retention to 7 days 2026-04-03 22:42:52 +02:00