From aae75ce52fa1541b32f54ee96a3442b65a92844a Mon Sep 17 00:00:00 2001 From: Onuray Sahin Date: Fri, 4 Mar 2022 16:54:56 +0300 Subject: [PATCH] Always stop all voice actions and media player if app enters to the background. --- .../home/room/detail/composer/MessageComposerViewModel.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) 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 fba3b8b5d3..b71398c8a2 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 @@ -872,11 +872,14 @@ 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 = voiceMessageHelper.stopAllVoiceActions(deleteRecord = false) + voiceMessageHelper.clearTracker() + val isVoiceRecording = com.airbnb.mvrx.withState(this) { it.isVoiceRecording } if (isVoiceRecording) { - voiceMessageHelper.clearTracker() viewModelScope.launch { - voiceMessageHelper.stopAllVoiceActions(deleteRecord = false)?.toContentAttachmentData()?.let { voiceDraft -> + playingAudioContent?.toContentAttachmentData()?.let { voiceDraft -> val content = voiceDraft.toJsonString() room.saveDraft(UserDraft.Voice(content)) setState { copy(sendMode = SendMode.Voice(content)) }