From fced3de8ef50c82bb7bfb04e894956c880ede375 Mon Sep 17 00:00:00 2001 From: Johannes Marbach Date: Mon, 8 Aug 2022 08:56:04 +0200 Subject: [PATCH] Stop recording via playback tracker when it ends Signed-off-by: Johannes Marbach --- .../features/home/room/detail/composer/AudioMessageHelper.kt | 3 +++ .../detail/timeline/helper/AudioMessagePlaybackTracker.kt | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/AudioMessageHelper.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/AudioMessageHelper.kt index 2e150daee6..2eced20aad 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/composer/AudioMessageHelper.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/composer/AudioMessageHelper.kt @@ -79,6 +79,7 @@ class AudioMessageHelper @Inject constructor( } fun stopRecording(): MultiPickerAudioType? { + playbackTracker.stopRecording(AudioMessagePlaybackTracker.RECORDING_ID) tryOrNull("Cannot stop media recording amplitude") { stopRecordingAmplitudes() } @@ -110,11 +111,13 @@ class AudioMessageHelper @Inject constructor( * When entering in playback mode actually. */ fun pauseRecording() { + playbackTracker.stopRecording(AudioMessagePlaybackTracker.RECORDING_ID) voiceRecorder.stopRecord() stopRecordingAmplitudes() } fun deleteRecording() { + playbackTracker.stopRecording(AudioMessagePlaybackTracker.RECORDING_ID) tryOrNull("Cannot stop media recording amplitude") { stopRecordingAmplitudes() } diff --git a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/AudioMessagePlaybackTracker.kt b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/AudioMessagePlaybackTracker.kt index 6937cd3a46..0b365eac69 100644 --- a/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/AudioMessagePlaybackTracker.kt +++ b/vector/src/main/java/im/vector/app/features/home/room/detail/timeline/helper/AudioMessagePlaybackTracker.kt @@ -116,6 +116,10 @@ class AudioMessagePlaybackTracker @Inject constructor() { setState(id, Listener.State.Recording(amplitudeList)) } + fun stopRecording(id: String) { + setState(id, Listener.State.Idle) + } + fun getPlaybackState(id: String) = states[id] fun getPlaybackTime(id: String): Int {