Commit Graph

38 Commits

Author SHA1 Message Date
Janez T
6e9e9e397d Fix RX advert data parsing 2026-03-14 16:34:31 +01:00
Janez T
a3147e9d7c Summarize repo changes 2026-03-14 10:39:27 +01:00
Janez T
63aa9619e6 Clear message input on send 2026-03-13 19:38:05 +01:00
Janez T
d5684c51c7 Fix channel sync and logging 2026-03-13 19:24:42 +01:00
Janez T
1e70f52069 Allow overriding contact name 2026-03-13 10:16:04 +01:00
Janez T
69ec2dfdb5 Add live mesh traffic view 2026-03-12 20:12:25 +01:00
Janez T
d2e6b692f3 Fix voice quality regression 2026-03-12 19:38:41 +01:00
Janez T
ca872f2049 Add LPCNet voice mode support 2026-03-11 21:16:08 +01:00
Janez T
99bb446ee9 Update iOS Runner project version 2026-03-11 16:31:53 +01:00
Janez T
d675ce18dd Use LogRxRouteDecoder in AppProvider 2026-03-10 08:43:58 +01:00
Janez T
2ab8681ac4 Add multilingual localization 2026-03-08 20:50:53 +01:00
Janez T
771cddb80d Display unread counts per channel 2026-03-08 20:22:10 +01:00
Janez T
f72db76538 Add reply shortcut for messages 2026-03-08 20:10:51 +01:00
Janez T
1f826ae4c2 Set simple mode default 2026-03-08 09:19:13 +01:00
Janez T
0e4f727e26 Add swarm mode transport doc 2026-03-07 14:13:54 +01:00
Janez T
bb1c1f455d Refine message composer layout 2026-03-07 08:31:09 +01:00
Janez T
f1d56e2000 Refactor messages tab UI 2026-03-07 08:16:28 +01:00
Janez T
70a6156e8a Update iOS project version 2026-03-06 21:22:51 +01:00
Janez T
85d0b26c67 Add retransmission handling 2026-03-06 20:12:12 +01:00
Janez T
7cd5351921 Improve message input layout 2026-03-06 20:01:56 +01:00
Janez T
f6779e8776 fix: clean up messages composer bar
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
55a85659d3 Add tic tac toe DM game 2026-03-05 09:05:18 +01:00
Janez T
50a4322f44 Limit media fetch hops to three 2026-03-05 08:31:34 +01:00
Janez T
c83eaa4d98 Limit direct payload hops 2026-03-05 08:30:06 +01:00
Janez T
b12567f613 Add trace button and raw packets 2026-03-05 08:02:39 +01:00
Janez T
b6aa0bcfaa Bump iOS project version 2026-03-05 07:36:21 +01:00
Janez T
f31083694f Fix DM private media sending 2026-03-04 19:55:53 +01:00
Janez T
7ffc46438f fix: disable voice recording on web via kIsWeb guard 2026-03-04 19:21:43 +01:00
Janez T
c176bd92a9 Tweak AVIF tuning and preferences 2026-03-02 09:42:14 +01:00
Janez T
e13143aead Add retry for failed media packets 2026-03-02 08:04:16 +01:00
Janez T
a0c4cdeede Add voice image packet retry 2026-03-01 19:25:19 +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
1597d66439 Refactor voice support and add Greek localization
- Updated voice support to only include iOS, removing MacOS support.
- Added Greek (el) to the list of supported locales in LocalePreferences.
- Enhanced localization strings for Greek language.
- Modified Podfile to exclude C source files from the macOS build of codec2_flutter, as voice messages are iOS-only.
2026-02-28 19:39:20 +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
Janez T
baf49d27d8 feat: MeshCore SAR - Flutter BLE mesh radio companion app
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 10:11:33 +01:00