Commit Graph
53 Commits
Author SHA1 Message Date
Janez T 9f62055eef Enable route hash settings 2026-03-08 17:00:54 +01:00
Janez T 6b2f18130c Add nearest relay fallback toggle 2026-03-08 16:56:57 +01:00
Janez T 922b40b755 Implement meshcore route rotation 2026-03-08 16:46:46 +01:00
Janez T 17d7c43745 Implement meshcore-open route reload 2026-03-08 14:26:05 +01:00
Janez T 1f826ae4c2 Set simple mode default 2026-03-08 09:19:13 +01:00
Janez T 1c3af4f927 Upgrade flutter packages and limit 2026-03-07 20:59:01 +01:00
Janez T 3433eae3a6 Remove unused path_provider entry 2026-03-07 20:23:09 +01:00
Janez T 1867f815d2 Modernize contact list pills 2026-03-07 18:41:37 +01:00
Janez T 4010680da0 Fix contact route parse usage 2026-03-07 18:36:38 +01:00
Janez T 6bfc08f3ae Keep contact GPS location saved 2026-03-07 18:30:36 +01:00
Janez T 2c2e7b392a Remove showDirectMessageDialog usage 2026-03-07 14:24:10 +01:00
Janez T 3307a93640 Add avatars display on map 2026-03-07 14:17:52 +01:00
Janez T 0e4f727e26 Add swarm mode transport doc 2026-03-07 14:13:54 +01:00
Janez T 2bc0e21cf0 Remove 100ms BLE command delay 2026-03-07 09:23:29 +01:00
Janez T f6c5a3a4ca Add transmission timing details 2026-03-07 09:05:55 +01:00
Janez T 810897d348 Refactor message header pill 2026-03-07 08:39:32 +01:00
Janez T bb1c1f455d Refine message composer layout 2026-03-07 08:31:09 +01:00
Janez T b0eded3780 Fix message bubble layout 2026-03-07 08:28:22 +01:00
Janez T f1d56e2000 Refactor messages tab UI 2026-03-07 08:16:28 +01:00
Janez T 1856dce27a Update iOS project version 2026-03-06 21:05:02 +01:00
Janez T 0e1a56d765 Log contact data without revealing 2026-03-06 20:47:02 +01:00
Janez T ca8e8e6ecb Increase cache for public repeaters 2026-03-06 20:29:30 +01:00
Janez T 43f5702666 Add conservative ACK timeout 2026-03-06 20:27:05 +01:00
Janez T 85d0b26c67 Add retransmission handling 2026-03-06 20:12:12 +01:00
Janez T 96feb75712 feat: save all pending work
ref:
2026-03-06 20:01:56 +01:00
Janez T 2482f94cd0 Push meshcore_client and refresh pub 2026-03-05 20:58:29 +01:00
Janez T 03c0c7ad38 fix: safe scan notifications
ref:
2026-03-05 20:10:08 +01:00
Janez T 42fc1f9cd2 fix: defer dialog scan start
ref:
2026-03-05 20:08:36 +01:00
Janez T ab0c531a4b Add toast for image fetch failures 2026-03-05 13:07:53 +01:00
Janez T 9709511e90 Fix image bubble contact lookup 2026-03-05 11:56:34 +01:00
Janez T 162d5333ce Hide tab bar when single tab 2026-03-05 11:51:23 +01:00
Janez T 0cb1d49804 Fix null check crash in TabBar 2026-03-05 11:41:15 +01:00
Janez T 234edf5bb0 Add message clear option 2026-03-05 11:04:41 +01:00
Janez T 76b093685e Add fragment transfer estimate 2026-03-05 09:38:39 +01:00
Janez T 55a85659d3 Add tic tac toe DM game 2026-03-05 09:05:18 +01:00
Janez T c83eaa4d98 Limit direct payload hops 2026-03-05 08:30:06 +01:00
Janez T 99cd378e6a Add stats pills and RFC3339 date 2026-03-05 08:13:18 +01:00
Janez T 6a52e7cfa1 Add stats pills and RFC009 date 2026-03-05 08:12:48 +01:00
Janez T b12567f613 Add trace button and raw packets 2026-03-05 08:02:39 +01:00
Janez T 13b91e3cc9 Add packet trace storage flow 2026-03-05 07:50:42 +01:00
Janez T 40d786eb25 Add trace button to message bubble 2026-03-05 07:45:16 +01:00
Janez T f31083694f Fix DM private media sending 2026-03-04 19:55:53 +01:00
Janez T 1460bdb51f fix: remove all auto-retry image fetch, user-initiated only
- No automatic IR1 requests; fragments arrive only when user taps load
- Bubble sends IR1 with missing indices only if partial session exists
  (partial resume: only missing fragments requested, not the whole image)
- 30s timeout resets the loading spinner so user can tap retry again
- Saves LoRa airtime by never transmitting IR1 without explicit user action
2026-03-04 19:47:01 +01:00
Janez T 84a6f81c26 feat: replace SSE client with direct TCP/WiFi connection
- Remove SseClientService and ConnectionMode.sseClient
- Add ConnectionMode.tcp with MeshCoreTcpService (port 5000)
- NetworkScannerService: scan TCP port 5000 via raw Socket.connect
- mDNS service type changed to _meshcore._tcp
- connection_dialog: connect via connectTcp() instead of connectToSseServer()
- home_screen: show WiFi icon and label for TCP mode
- Bump meshcore_client to pick up TCP transport support
2026-03-04 19:11:16 +01:00
Janez T e85e290265 Update MeshCoreBleService calls 2026-03-02 10:33:49 +01:00
Janez T c176bd92a9 Tweak AVIF tuning and preferences 2026-03-02 09:42:14 +01:00
Janez T 0e7ba5572d Improve image zoom quality 2026-03-01 19:17:09 +01:00
Janez T e43b386029 Build latest Android apk 2026-03-01 11:20:14 +01:00
Janez T 474fd02635 fix: retain voice codec settings now
ref:
2026-03-01 11:00:30 +01:00
Janez T f96d8022ac feat: add Codec2 voice messages over LoRa mesh (iOS/macOS only)
Push-to-talk voice messaging using the Codec2 ultra-low-bitrate speech
codec, transmitted as V: prefixed packets over the existing MeshCore
LoRa mesh pipeline.

Voice recording UI (long-press send button or + menu) is gated behind
Platform.isIOS || Platform.isMacOS since the `record` package only
supports microphone capture on those platforms in this build.

Key changes:
- VoiceRecorderService: streams 8kHz mono PCM chunks via `record` package
- VoicePlayerService: decodes Codec2 bytes to WAV and plays via audioplayers
- VoiceCodecService: async Codec2 encode/decode in background isolates
- VoiceProvider: reassembles multi-packet sessions, drives playback
- VoiceMessageBubble: shows packet progress, play/stop controls
- MessagesProvider: detects V: prefix, routes to VoiceProvider
- MessagesTab: PTT long-press gesture + recording indicator (iOS/macOS)
- Message model: isVoice + voiceId fields for session tracking
- Auto-selects codec mode from radio bandwidth (700C/1200/1300 bps)
- codec2_flutter + meshcore_client switched from path to git deps
2026-02-28 19:19:46 +01:00