diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/RadioAudioEngine.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/RadioAudioEngine.kt index 0525afcd..1d796e2a 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/RadioAudioEngine.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/RadioAudioEngine.kt @@ -155,7 +155,7 @@ class RadioAudioEngine { audioGroup = group vadWindow.restart(SystemClock.elapsedRealtime()) operation = "setup" - setupAudio() + setupAudio(version) ready = active && generation == version && audioTrack != null } } @@ -274,7 +274,7 @@ class RadioAudioEngine { } /* Приём создаётся независимо от микрофона (только io-поток). */ - private fun setupAudio() { + private fun setupAudio(version: Long) { loadCaptureSettings() val group = audioGroup check(NativeLib.radioAudioStart(group, 0)) { "native radioAudioStart failed group=$group" } @@ -302,7 +302,7 @@ class RadioAudioEngine { priority = Thread.MAX_PRIORITY; start() } - registerScreenReceiver() + registerScreenReceiver(version) updateCapture() LogManager.addLog("INFO", "RadioAudio", "listening group=$group trackBuf=$trackBuf") } @@ -358,8 +358,7 @@ class RadioAudioEngine { private fun screenOn(): Boolean = (ChatApplication.instance.getSystemService(Context.POWER_SERVICE) as PowerManager).isInteractive - private fun registerScreenReceiver() { - val version = generation + private fun registerScreenReceiver(version: Long) { val receiver = object : BroadcastReceiver() { override fun onReceive(context: Context, intent: Intent) { if (!active || generation != version || screenReceiver !== this) {