diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt index 60400ce9c6..0ac638034d 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/RoomDetailViewModel.kt @@ -631,6 +631,7 @@ class RoomDetailViewModel @AssistedInject constructor( } private fun handleEndRecordingVoiceMessage(isCancelled: Boolean) { + voiceMessageHelper.stopPlayback() if (isCancelled) { voiceMessageHelper.deleteRecording() } else { diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageHelper.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageHelper.kt index cdb789997d..dc1115cbda 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageHelper.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageHelper.kt @@ -93,6 +93,7 @@ class VoiceMessageHelper @Inject constructor( */ fun pauseRecording() { voiceRecorder.stopRecord() + stopRecordingAmplitudes() } fun deleteRecording() { @@ -112,6 +113,7 @@ class VoiceMessageHelper @Inject constructor( fun startOrPausePlayback(id: String, file: File) { stopPlayback() + stopRecordingAmplitudes() if (playbackTracker.getPlaybackState(id) is VoiceMessagePlaybackTracker.Listener.State.Playing) { playbackTracker.pausePlayback(id) } else { @@ -145,7 +147,7 @@ class VoiceMessageHelper @Inject constructor( startPlaybackTicker(id) } - private fun stopPlayback() { + fun stopPlayback() { mediaPlayer?.stop() stopPlaybackTicker() } diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt index dc7c0f3a03..0dc3d198db 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/VoiceMessageRecorderView.kt @@ -415,6 +415,7 @@ class VoiceMessageRecorderView @JvmOverloads constructor( val formattedTimerText = DateUtils.formatElapsedTime((state.playbackTime / 1000).toLong()) views.voicePlaybackTime.text = formattedTimerText } + is VoiceMessagePlaybackTracker.Listener.State.Paused, is VoiceMessagePlaybackTracker.Listener.State.Idle -> { views.voicePlaybackControlButton.setImageResource(R.drawable.ic_play_pause_play) }