Ensure deleting pauses audio
This commit is contained in:
parent
fca94692f6
commit
1683049b0c
2 changed files with 26 additions and 1 deletions
|
|
@ -165,7 +165,10 @@ class VoiceMessageComposerPresenter @Inject constructor(
|
||||||
is VoiceMessageComposerEvents.SendVoiceMessage -> localCoroutineScope.launch {
|
is VoiceMessageComposerEvents.SendVoiceMessage -> localCoroutineScope.launch {
|
||||||
onSendButtonPress()
|
onSendButtonPress()
|
||||||
}
|
}
|
||||||
VoiceMessageComposerEvents.DeleteVoiceMessage -> localCoroutineScope.deleteRecording()
|
VoiceMessageComposerEvents.DeleteVoiceMessage -> {
|
||||||
|
player.pause()
|
||||||
|
localCoroutineScope.deleteRecording()
|
||||||
|
}
|
||||||
VoiceMessageComposerEvents.DismissPermissionsRationale -> onDismissPermissionsRationale()
|
VoiceMessageComposerEvents.DismissPermissionsRationale -> onDismissPermissionsRationale()
|
||||||
VoiceMessageComposerEvents.AcceptPermissionRationale -> onAcceptPermissionsRationale()
|
VoiceMessageComposerEvents.AcceptPermissionRationale -> onAcceptPermissionsRationale()
|
||||||
is VoiceMessageComposerEvents.LifecycleEvent -> onLifecycleEvent(event.event)
|
is VoiceMessageComposerEvents.LifecycleEvent -> onLifecycleEvent(event.event)
|
||||||
|
|
|
||||||
|
|
@ -209,6 +209,28 @@ class VoiceMessageComposerPresenterTest {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun `present - delete while playing`() = runTest {
|
||||||
|
val presenter = createVoiceMessageComposerPresenter()
|
||||||
|
moleculeFlow(RecompositionMode.Immediate) {
|
||||||
|
presenter.present()
|
||||||
|
}.test {
|
||||||
|
awaitItem().eventSink(VoiceMessageComposerEvents.RecordButtonEvent(PressEvent.PressStart))
|
||||||
|
awaitItem().eventSink(VoiceMessageComposerEvents.RecordButtonEvent(PressEvent.LongPressEnd))
|
||||||
|
awaitItem().eventSink(VoiceMessageComposerEvents.PlayerEvent(VoiceMessagePlayerEvent.Play))
|
||||||
|
awaitItem().eventSink(VoiceMessageComposerEvents.DeleteVoiceMessage)
|
||||||
|
awaitItem().apply {
|
||||||
|
assertThat(voiceMessageState).isEqualTo(aPreviewState(isPlaying = false))
|
||||||
|
}
|
||||||
|
|
||||||
|
val finalState = awaitItem()
|
||||||
|
assertThat(finalState.voiceMessageState).isEqualTo(VoiceMessageState.Idle)
|
||||||
|
voiceRecorder.assertCalls(started = 1, stopped = 1, deleted = 1)
|
||||||
|
|
||||||
|
testPauseAndDestroy(finalState)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun `present - send recording`() = runTest {
|
fun `present - send recording`() = runTest {
|
||||||
val presenter = createVoiceMessageComposerPresenter()
|
val presenter = createVoiceMessageComposerPresenter()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue