From d53ad4328c5d0c356a53548398430e1b90d911aa Mon Sep 17 00:00:00 2001 From: Florian Renaud Date: Tue, 18 Oct 2022 01:00:50 +0200 Subject: [PATCH] Voice Broadcast - Pause listening outside of the timeline --- .../home/room/detail/composer/MessageComposerFragment.kt | 1 + .../home/room/detail/composer/MessageComposerViewModel.kt | 4 ++++ 2 files changed, 5 insertions(+) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/MessageComposerFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/MessageComposerFragment.kt index 9954470e48..59f9737542 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/MessageComposerFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/MessageComposerFragment.kt @@ -236,6 +236,7 @@ class MessageComposerFragment : VectorBaseFragment(), A // Pause voice broadcast if the timeline is not shown anymore it.isVoiceBroadcasting && !requireActivity().isChangingConfigurations -> timelineViewModel.handle(VoiceBroadcastAction.Recording.Pause) else -> { + timelineViewModel.handle(VoiceBroadcastAction.Listening.Pause) messageComposerViewModel.handle(MessageComposerAction.OnEntersBackground(composer.text.toString())) } } diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/MessageComposerViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/MessageComposerViewModel.kt index eef06d11b7..1a9f9e6291 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/MessageComposerViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/MessageComposerViewModel.kt @@ -42,6 +42,7 @@ import im.vector.app.features.powerlevel.PowerLevelsFlowFactory import im.vector.app.features.session.coroutineScope import im.vector.app.features.settings.VectorPreferences import im.vector.app.features.voicebroadcast.VoiceBroadcastConstants +import im.vector.app.features.voicebroadcast.VoiceBroadcastHelper import im.vector.app.features.voicebroadcast.model.asVoiceBroadcastEvent import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.flow.combine @@ -84,6 +85,7 @@ class MessageComposerViewModel @AssistedInject constructor( private val rainbowGenerator: RainbowGenerator, private val audioMessageHelper: AudioMessageHelper, private val analyticsTracker: AnalyticsTracker, + private val voiceBroadcastHelper: VoiceBroadcastHelper, ) : VectorViewModel(initialState) { private val room = session.getRoom(initialState.roomId)!! @@ -981,6 +983,8 @@ class MessageComposerViewModel @AssistedInject constructor( private fun handleEntersBackground(composerText: String) { // Always stop all voice actions. It may be playing in timeline or active recording val playingAudioContent = audioMessageHelper.stopAllVoiceActions(deleteRecord = false) + // TODO remove this when there will be a listening indicator outside of the timeline + voiceBroadcastHelper.pausePlayback() val isVoiceRecording = com.airbnb.mvrx.withState(this) { it.isVoiceRecording } if (isVoiceRecording) {