From 5b5b118b7ade3e372af8e81eb303eec7368736ac Mon Sep 17 00:00:00 2001 From: Cody Henthorne Date: Wed, 16 Mar 2022 10:08:06 -0400 Subject: [PATCH] Fix disconnect sound on call termination. --- .../securesms/webrtc/audio/SignalAudioManager.kt | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt index 51496f553..dfe1888b1 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/webrtc/audio/SignalAudioManager.kt @@ -413,6 +413,8 @@ class TelecomAwareSignalAudioManager(context: Context, eventListener: EventListe if (!focusedGained) { handler.postDelayed({ androidAudioManager.requestCallAudioFocus() }, 500) } + + state = State.PREINITIALIZED } override fun start() { @@ -423,11 +425,21 @@ class TelecomAwareSignalAudioManager(context: Context, eventListener: EventListe if (!focusedGained) { handler.postDelayed({ androidAudioManager.requestCallAudioFocus() }, 500) } + + state = State.RUNNING } override fun stop(playDisconnect: Boolean) { incomingRinger.stop() outgoingRinger.stop() + + if (playDisconnect && state != State.UNINITIALIZED) { + val volume: Float = androidAudioManager.ringVolumeWithMinimum() + soundPool.play(disconnectedSoundId, volume, volume, 0, 0, 1.0f) + } + + state = State.UNINITIALIZED + androidAudioManager.abandonCallAudioFocus() }