From a6f8156564587ceb7273d5bf801b7a07eefc5621 Mon Sep 17 00:00:00 2001 From: evgeny Date: Wed, 28 Oct 2026 23:27:31 +0100 Subject: [PATCH] Track possible SCO effects before starting the Android request --- .../main/java/com/utun/chat/data/CallAudioRouter.kt | 2 +- .../src/main/kotlin/android/media/HostAudio.kt | 11 +++++++---- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/CallAudioRouter.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/CallAudioRouter.kt index dff3df1b..817ecb48 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/CallAudioRouter.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/CallAudioRouter.kt @@ -630,8 +630,8 @@ class CallAudioRouter { private fun startBluetoothSco() { scoOwned = true - am.startBluetoothSco() scoFlagOwned = true + am.startBluetoothSco() am.isBluetoothScoOn = true } diff --git a/tools/chatgui-android/router-tests/src/main/kotlin/android/media/HostAudio.kt b/tools/chatgui-android/router-tests/src/main/kotlin/android/media/HostAudio.kt index e632dd1e..c494d8f4 100644 --- a/tools/chatgui-android/router-tests/src/main/kotlin/android/media/HostAudio.kt +++ b/tools/chatgui-android/router-tests/src/main/kotlin/android/media/HostAudio.kt @@ -63,7 +63,7 @@ class AudioManager { check(name !in failures) { "audio operation failed: $name" } } var isBluetoothScoOn = false - set(value) { operation("sco=$value"); field = value } + set(value) { operation("sco=$value"); field = value; operation("sco after=$value") } var isSpeakerphoneOn = false set(value) { operation("speaker=$value"); field = value } var mode = 0 @@ -106,9 +106,12 @@ class AudioManager { operation("select=${device.id}") if (!acceptCommunicationDevice || device !in availableCommunicationDevices) return false communicationDevice = device + operation("select after=${device.id}") return true } - fun clearCommunicationDevice() { operation("clear"); communicationDevice = null } - fun startBluetoothSco() { operation("start sco") } - fun stopBluetoothSco() { operation("stop sco") } + var legacyScoStarted = false + private set + fun clearCommunicationDevice() { operation("clear"); communicationDevice = null; operation("clear after") } + fun startBluetoothSco() { operation("start sco"); legacyScoStarted = true; operation("start sco after") } + fun stopBluetoothSco() { operation("stop sco"); legacyScoStarted = false; operation("stop sco after") } }