Commit Graph

29 Commits

Author SHA1 Message Date
Janez T
be7fe6c4b0 Fix null-aware marker usage 2026-03-01 14:04:41 +01:00
Janez T
8a91e7bf89 fix: pin codec2 ref
ref:
2026-03-01 13:58:26 +01:00
Janez T
b0039feeb7 Adjust timezone dependency method 2026-03-01 12:59:25 +01:00
Janez T
0dc15ef098 Update codec2_flutter ref 2026-03-01 11:22:13 +01:00
Janez T
e43b386029 Build latest Android apk 2026-03-01 11:20:14 +01:00
Janez T
98718c8476 fix: use git codec2 flutter
ref:
2026-03-01 11:09:39 +01:00
Janez T
cb154a86fd fix: use git meshcore client
ref:
2026-03-01 11:08:29 +01:00
Janez T
9dd100fd61 fix: use local meshcore client
ref:
2026-03-01 11:07:19 +01:00
Janez T
474fd02635 fix: retain voice codec settings now
ref:
2026-03-01 11:00:30 +01:00
Janez T
daeb8aeb9c Use env vars for iOS artifact names 2026-02-28 20:16:02 +01:00
Janez T
6a83624823 Install CMake 3.18.1 for Flutter 2026-02-28 20:06:52 +01:00
Janez T
0dd408e60d Install CMake 3.18.1 for Flutter 2026-02-28 20:02:36 +01:00
Janez T
f7d4c024d4 fix: revert iOS AppDelegate to standard Flutter template
FlutterImplicitEngineDelegate and FlutterImplicitEngineBridge are not
part of the stable Flutter SDK (3.35.x). Use the standard AppDelegate
pattern with GeneratedPluginRegistrant.register(with: self) instead.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-28 19:57:41 +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
f78d56ccb1 fix: update meshcore_client lockfile after history rewrite 2026-02-28 19:30:08 +01:00
Janez T
c04354e483 fix: add GStreamer deps for Linux build, update codec2_flutter to vendored source 2026-02-28 19:27:48 +01:00
Janez T
d959c5e32d fix: update codec2_flutter lockfile to include Android namespace fix 2026-02-28 19:26:07 +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
3e5b2ac0de fix: release signing fallback in ci
ref:
2026-02-28 14:40:12 +01:00
Janez T
fbe714e637 docs: add artifact download steps
ref:
2026-02-28 14:40:04 +01:00
Janez T
d587b1eeb1 fix: retain last valid gps data
ref:
2026-02-28 14:29:46 +01:00
Janez T
880cee5477 chore: rename workflow for push builds
ref:
2026-02-28 14:22:50 +01:00
Janez T
2e422fe653 fix: use git dependency for meshcore_client 2026-02-28 14:18:25 +01:00
Janez T
8d0aa7849e fix: ignore zeroed telemetry gps coords
Fixes #4\nRefs #5\n\nref:
2026-02-28 14:17:52 +01:00
Janez T
c90fd8f617 fix: show destination and channel key
ref:
2026-02-28 14:16:46 +01:00
Janez T
6f94d3a9ba docs: compact README, link meshcore_client package 2026-02-28 14:12:01 +01:00
Janez T
c39e0e1344 refactor: extract BLE protocol stack into meshcore_client package
Move BLE communication layer (command queue, frame parser/builder,
protocol constants, data models) into a standalone reusable Dart package
at ../meshcore_client. App model files become thin re-export wrappers,
keeping all existing consumers working without import changes.
2026-02-28 14:09:30 +01:00
Janez T
6bd7517180 fix: init tabs advert quick add
ref:
2026-02-28 11:29:28 +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