feat(ios,p0): iOS P0 platform, audio fixes, channel UX

This commit is contained in:
Edison Jwa
2026-05-17 22:00:00 +09:00
parent a1fefc8ab6
commit 7a59f5b9a1
38 changed files with 1705 additions and 674 deletions
@@ -41,6 +41,19 @@ Future<void> disconnect() => RustLib.instance.api.crateApiDisconnect();
/// True if a connection is currently active.
Future<bool> isConnected() => RustLib.instance.api.crateApiIsConnected();
/// Handle iOS AVAudioSession route changes (SDD-100).
void handleRouteChange() => RustLib.instance.api.crateApiHandleRouteChange();
/// Handle iOS AVAudioSession interruption begin (SDD-101).
void handleInterruptionBegan() =>
RustLib.instance.api.crateApiHandleInterruptionBegan();
/// Handle iOS AVAudioSession interruption end (SDD-101).
void handleInterruptionEnded({required bool shouldResume}) => RustLib
.instance
.api
.crateApiHandleInterruptionEnded(shouldResume: shouldResume);
/// Set the push-to-talk state.
///
/// Superseded in v1 by [`set_transmit_mode`] + the binding capture
@@ -427,6 +440,15 @@ sealed class BridgeEvent with _$BridgeEvent {
/// Current release-tail in milliseconds (0..=500).
required int releaseTailMs,
}) = BridgeEvent_VoiceState;
/// iOS audio interruption state (SDD-101).
const factory BridgeEvent.interruptionState({
/// True when interruption began, false when it ended.
required bool began,
/// Resume recommendation from the platform. False on begin.
required bool shouldResume,
}) = BridgeEvent_InterruptionState;
}
/// Coarse OS-reported network state. Mirrors