diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt index 8f532413e9..cea9641443 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailFragment.kt @@ -708,18 +708,12 @@ class RoomDetailFragment @Inject constructor( roomDetailViewModel.handle(RoomDetailAction.PlayOrPauseRecordingPlayback) } - override fun onVoiceRecordingEnded(lastKnownState: RecordingUiState?) { - when (lastKnownState) { - RecordingUiState.Locked -> { - // do nothing, - // onSendVoiceMessage, onDeleteVoiceMessage or onRecordingLimitReached will be triggered instead - } - else -> { - val isCancelled = lastKnownState == RecordingUiState.Cancelled - roomDetailViewModel.handle(RoomDetailAction.EndRecordingVoiceMessage(isCancelled = isCancelled)) - updateRecordingUiState(RecordingUiState.None) - } - } + override fun onVoiceRecordingCancelled() { + onDeleteVoiceMessage() + } + + override fun onVoiceRecordingEnded() { + onSendVoiceMessage() } override fun onUiStateChanged(state: RecordingUiState) { diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/voice/VoiceMessageRecorderView.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/voice/VoiceMessageRecorderView.kt index 818a22107f..178e814550 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/voice/VoiceMessageRecorderView.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/voice/VoiceMessageRecorderView.kt @@ -41,8 +41,9 @@ class VoiceMessageRecorderView @JvmOverloads constructor( interface Callback { fun onVoiceRecordingStarted() - fun onVoiceRecordingEnded(lastKnownState: RecordingUiState?) + fun onVoiceRecordingEnded() fun onVoicePlaybackButtonClicked() + fun onVoiceRecordingCancelled() fun onUiStateChanged(state: RecordingUiState) fun onSendVoiceMessage() fun onDeleteVoiceMessage() @@ -72,7 +73,17 @@ class VoiceMessageRecorderView @JvmOverloads constructor( private fun initListeners() { voiceMessageViews.start(object : VoiceMessageViews.Actions { override fun onRequestRecording() = callback.onVoiceRecordingStarted() - override fun onMicButtonReleased() = callback.onVoiceRecordingEnded(lastKnownState) + override fun onMicButtonReleased() { + when (lastKnownState) { + RecordingUiState.Locked -> { + // do nothing, + // onSendVoiceMessage, onDeleteVoiceMessage or onRecordingLimitReached will be triggered instead + } + RecordingUiState.Cancelled -> callback.onVoiceRecordingCancelled() + else -> callback.onVoiceRecordingEnded() + } + } + override fun onSendVoiceMessage() = callback.onSendVoiceMessage() override fun onDeleteVoiceMessage() = callback.onDeleteVoiceMessage() override fun onWaveformClicked() = callback.onRecordingWaveformClicked()