diff --git a/libraries/voicerecorder/impl/src/main/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorder.kt b/libraries/voicerecorder/impl/src/main/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorder.kt index 4dd68d25e7..4823c67c6a 100644 --- a/libraries/voicerecorder/impl/src/main/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorder.kt +++ b/libraries/voicerecorder/impl/src/main/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorder.kt @@ -72,11 +72,6 @@ class DefaultVoiceRecorder( @RequiresPermission(Manifest.permission.RECORD_AUDIO) override suspend fun startRecord() = lock.withLock { - // The composer can emit a second Start before the first recording has produced its first - // buffer, i.e. before the state flips away from Idle. Without this guard the second call - // orphans the first job and its AudioReader, which keeps the microphone open and keeps - // emitting Recording forever, so Stop and Delete appear to do nothing. - // See https://github.com/element-hq/element-x-android/issues/5780 if (recordingJob != null) { Timber.w("Voice recorder is already recording, ignoring this start") return@withLock diff --git a/libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorderTest.kt b/libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorderTest.kt index 3a65d612bb..158b9ba481 100644 --- a/libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorderTest.kt +++ b/libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/impl/DefaultVoiceRecorderTest.kt @@ -116,7 +116,6 @@ class DefaultVoiceRecorderTest { voiceRecorder.state.test { assertThat(awaitItem()).isEqualTo(VoiceRecorderState.Idle) - // Two taps landing before the state has flipped away from Idle. voiceRecorder.startRecord() voiceRecorder.startRecord() assertThat(audioReaderFactory.createdCount).isEqualTo(1) @@ -133,7 +132,6 @@ class DefaultVoiceRecorderTest { duration = 5.seconds, ) ) - // An orphaned recording job would keep emitting Recording after the stop. expectNoEvents() } } diff --git a/libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/test/FakeAudioReaderFactory.kt b/libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/test/FakeAudioReaderFactory.kt index 2c29b2635e..d3e434538e 100644 --- a/libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/test/FakeAudioReaderFactory.kt +++ b/libraries/voicerecorder/impl/src/test/kotlin/io/element/android/libraries/voicerecorder/test/FakeAudioReaderFactory.kt @@ -16,7 +16,6 @@ import io.element.android.libraries.voicerecorder.impl.audio.AudioReader class FakeAudioReaderFactory( private val audio: List