Skip to content

feat: add experimental Android live-audio source - #13

Merged
matveyb9 merged 1 commit into
mainfrom
feat/android-foreground-live-audio-source
Aug 20, 2026
Merged

matveyb9 merged 1 commit into
mainfrom
feat/android-foreground-live-audio-source

Conversation

@matveyb9

Copy link
Copy Markdown
Owner

Summary

Implements the first experimental Android API 26+ foreground live-audio source slice. It adds no Android compatibility, device-support, physical-route or delivery claim.

Included

  • Rust-owned Acoustic-1 PCM16 LE conversion and bounded Flutter Rust Bridge methods for text live PCM only.
  • Regenerated committed FRB bindings and typed handwritten Flutter facade mapping.
  • Android Kotlin AudioTrack / AudioRecord MethodChannel + capture EventChannel host with contextual RECORD_AUDIO, v1 format validation, playback focus, stop/release on interruption/lifecycle stop, and no route picker/background/retention behavior.
  • Flutter Android adapter plus explicit experimental foreground playback/capture controls. Captured frames remain transient and decode only through Rust after user stop.
  • Rust, Flutter MethodChannel, portable widget and adapter contract coverage.
  • Bilingual implementation documentation, RFC/status updates and public pages that retain the no-build/no-device/no-route-support boundary.

Explicit non-claims

  • This PR does not establish a reproducible Android target build, Android runtime behavior, granted microphone permission, focus/route observation, playback output, capture decode through a physical channel, supported device, Bluetooth/cable/radio route, background use, duplex or file live transfer.
  • The sandbox has no Android SDK, so flutter build apk --debug could not run. This limitation is documented; it is not treated as successful target validation.
  • The Android speaker-to-microphone acceptance template remains unexecuted. A reviewed physical-route report is required before any compatibility wording changes.

Validation completed

cargo fmt --all -- --check
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace
flutter analyze
flutter test                         # 13 passed, 2 opt-in native tests skipped
flutter build web --release
flutter build linux --debug
node tools/device-acceptance/validate-report.mjs tools/device-acceptance/fixtures/report-template-v1.json
node tools/device-acceptance/validate-report.mjs tools/device-acceptance/fixtures/android-speaker-microphone-template-v1.json
node tools/device-acceptance/test-validator.mjs
git diff --check

The web build retains its existing flutter_rust_bridge wasm dry-run warning; it is non-fatal and native Rust bridge support remains unavailable on web.

@matveyb9
matveyb9 force-pushed the feat/android-foreground-live-audio-source branch from 3f8ec43 to 6a46445 Compare August 20, 2026 19:39
@matveyb9
matveyb9 merged commit ac5c695 into main Aug 20, 2026
5 checks passed
@matveyb9
matveyb9 deleted the feat/android-foreground-live-audio-source branch August 20, 2026 19:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant