From f81325e7ca8f509c3d75013dcc75cf13489aa549 Mon Sep 17 00:00:00 2001 From: Michelle Tang Date: Wed, 1 Apr 2026 14:14:56 -0400 Subject: [PATCH] Pause voice notes when joining calls. --- .../securesms/components/voice/VoiceNotePlayer.kt | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlayer.kt b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlayer.kt index cd69ecdf45..ae9e25f7f6 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlayer.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/voice/VoiceNotePlayer.kt @@ -14,6 +14,7 @@ import androidx.media3.exoplayer.DefaultLoadControl import androidx.media3.exoplayer.DefaultRenderersFactory import androidx.media3.exoplayer.ExoPlayer import androidx.media3.exoplayer.audio.AudioSink +import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.video.exo.SignalMediaSourceFactory /** @@ -35,6 +36,10 @@ class VoiceNotePlayer @JvmOverloads constructor( .setHandleAudioBecomingNoisy(true).build() ) : ForwardingPlayer(internalPlayer) { + companion object { + private val TAG = Log.tag(VoiceNotePlayer::class.java) + } + init { val audioManager = ContextCompat.getSystemService(context, AudioManager::class.java) @@ -47,6 +52,10 @@ class VoiceNotePlayer @JvmOverloads constructor( .build() ) .setOnAudioFocusChangeListener { + if (it == AudioManager.AUDIOFOCUS_LOSS || it == AudioManager.AUDIOFOCUS_LOSS_TRANSIENT) { + Log.d(TAG, "Audio focus change to $it. Pausing.") + this.pause() + } } .build() } else {