From 5e5937382d237a3d2b73731590f4b8a74a7db352 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 10 Feb 2023 14:29:36 +0100 Subject: [PATCH] Fixed issue when clicking on send message while voice recording is in progress --- CHANGELOG.md | 1 + .../chat/viewmodels/ChatMessageSendingViewModel.kt | 11 ++++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 380842062..9b60f0578 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -22,6 +22,7 @@ Group changes to describe their impact on the project, as follows: - Wrong country displayed in assistant after picking it in the list if another country has the same international prefix (such as +1) - SIP URI clickable pattern missing '~' - Crash that happens sometimes when CallActivity is destroyed +- Pressing send message button while recording a voice message not sending it - Missing ephemeral icon next to send message icon - Headers colors in IMDN details - Pixel issue in call quality indicator 2 icon diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt index f4459b574..f2f188796 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt @@ -213,6 +213,10 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel() stopVoiceRecordPlayer() } + if (isVoiceRecording.value == true) { + stopVoiceRecorder() + } + val pendingMessageToReplyTo = pendingChatMessageToReplyTo.value val message: ChatMessage = if (isPendingAnswer.value == true && pendingMessageToReplyTo != null) chatRoom.createReplyMessage(pendingMessageToReplyTo.chatMessage) @@ -403,7 +407,7 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel() } } - fun stopVoiceRecording() { + private fun stopVoiceRecorder() { if (recorder.state == RecorderState.Running) { Log.i("[Chat Message Sending] Pausing / closing voice recorder") recorder.pause() @@ -418,6 +422,11 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel() } isVoiceRecording.value = false + } + + fun stopVoiceRecording() { + stopVoiceRecorder() + if (corePreferences.sendVoiceRecordingRightAway) { Log.i("[Chat Message Sending] Sending voice recording right away") sendMessage()