Close the progress dialog when the treatment is over (avoid UI glitch)
This commit is contained in:
parent
7215786239
commit
e752da70fb
3 changed files with 14 additions and 6 deletions
|
|
@ -131,6 +131,7 @@ class AttachmentsPreviewPresenter @AssistedInject constructor(
|
||||||
attachment,
|
attachment,
|
||||||
prePropressingJob,
|
prePropressingJob,
|
||||||
mediaUploadInfoStateFlow.value,
|
mediaUploadInfoStateFlow.value,
|
||||||
|
sendActionState,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
AttachmentsPreviewEvents.ClearSendState -> {
|
AttachmentsPreviewEvents.ClearSendState -> {
|
||||||
|
|
@ -192,6 +193,7 @@ class AttachmentsPreviewPresenter @AssistedInject constructor(
|
||||||
attachment: Attachment,
|
attachment: Attachment,
|
||||||
preProcessingJob: Job?,
|
preProcessingJob: Job?,
|
||||||
mediaUploadInfo: AsyncData<MediaUploadInfo>,
|
mediaUploadInfo: AsyncData<MediaUploadInfo>,
|
||||||
|
sendActionState: MutableState<SendActionState>,
|
||||||
) = launch {
|
) = launch {
|
||||||
// Delete the temporary file
|
// Delete the temporary file
|
||||||
when (attachment) {
|
when (attachment) {
|
||||||
|
|
@ -203,6 +205,8 @@ class AttachmentsPreviewPresenter @AssistedInject constructor(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// Reset the sendActionState to ensure that dialog is closed before the screen
|
||||||
|
sendActionState.value = SendActionState.Done
|
||||||
onDoneListener()
|
onDoneListener()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -236,6 +240,8 @@ class AttachmentsPreviewPresenter @AssistedInject constructor(
|
||||||
}.fold(
|
}.fold(
|
||||||
onSuccess = {
|
onSuccess = {
|
||||||
cleanUp(mediaUploadInfo)
|
cleanUp(mediaUploadInfo)
|
||||||
|
// Reset the sendActionState to ensure that dialog is closed before the screen
|
||||||
|
sendActionState.value = SendActionState.Done
|
||||||
onDoneListener()
|
onDoneListener()
|
||||||
},
|
},
|
||||||
onFailure = { error ->
|
onFailure = { error ->
|
||||||
|
|
|
||||||
|
|
@ -33,4 +33,5 @@ sealed interface SendActionState {
|
||||||
}
|
}
|
||||||
|
|
||||||
data class Failure(val error: Throwable) : SendActionState
|
data class Failure(val error: Throwable) : SendActionState
|
||||||
|
data object Done : SendActionState
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -92,7 +92,7 @@ class AttachmentsPreviewPresenterTest {
|
||||||
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(0f))
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(0f))
|
||||||
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(0.5f))
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(0.5f))
|
||||||
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(1f))
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Uploading(1f))
|
||||||
advanceUntilIdle()
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Done)
|
||||||
sendFileResult.assertions().isCalledOnce()
|
sendFileResult.assertions().isCalledOnce()
|
||||||
onDoneListener.assertions().isCalledOnce()
|
onDoneListener.assertions().isCalledOnce()
|
||||||
}
|
}
|
||||||
|
|
@ -125,7 +125,7 @@ class AttachmentsPreviewPresenterTest {
|
||||||
advanceUntilIdle()
|
advanceUntilIdle()
|
||||||
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
||||||
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.InstantSending)
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.InstantSending)
|
||||||
advanceUntilIdle()
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Done)
|
||||||
sendFileResult.assertions().isCalledOnce()
|
sendFileResult.assertions().isCalledOnce()
|
||||||
onDoneListener.assertions().isCalledOnce()
|
onDoneListener.assertions().isCalledOnce()
|
||||||
}
|
}
|
||||||
|
|
@ -157,7 +157,7 @@ class AttachmentsPreviewPresenterTest {
|
||||||
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing)
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing)
|
||||||
// Pre-processing finishes
|
// Pre-processing finishes
|
||||||
processLatch.complete(Unit)
|
processLatch.complete(Unit)
|
||||||
advanceUntilIdle()
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Done)
|
||||||
sendFileResult.assertions().isCalledOnce()
|
sendFileResult.assertions().isCalledOnce()
|
||||||
onDoneListener.assertions().isCalledOnce()
|
onDoneListener.assertions().isCalledOnce()
|
||||||
}
|
}
|
||||||
|
|
@ -227,6 +227,7 @@ class AttachmentsPreviewPresenterTest {
|
||||||
val initialState = awaitItem()
|
val initialState = awaitItem()
|
||||||
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
assertThat(initialState.sendActionState).isEqualTo(SendActionState.Idle)
|
||||||
initialState.eventSink(AttachmentsPreviewEvents.Cancel)
|
initialState.eventSink(AttachmentsPreviewEvents.Cancel)
|
||||||
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Done)
|
||||||
deleteCallback.assertions().isCalledOnce()
|
deleteCallback.assertions().isCalledOnce()
|
||||||
onDoneListener.assertions().isCalledOnce()
|
onDoneListener.assertions().isCalledOnce()
|
||||||
}
|
}
|
||||||
|
|
@ -258,7 +259,7 @@ class AttachmentsPreviewPresenterTest {
|
||||||
initialState.textEditorState.setMarkdown(A_CAPTION)
|
initialState.textEditorState.setMarkdown(A_CAPTION)
|
||||||
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
||||||
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing)
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing)
|
||||||
advanceUntilIdle()
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Done)
|
||||||
sendImageResult.assertions().isCalledOnce().with(
|
sendImageResult.assertions().isCalledOnce().with(
|
||||||
any(),
|
any(),
|
||||||
any(),
|
any(),
|
||||||
|
|
@ -297,7 +298,7 @@ class AttachmentsPreviewPresenterTest {
|
||||||
initialState.textEditorState.setMarkdown(A_CAPTION)
|
initialState.textEditorState.setMarkdown(A_CAPTION)
|
||||||
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
||||||
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing)
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing)
|
||||||
advanceUntilIdle()
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Done)
|
||||||
sendVideoResult.assertions().isCalledOnce().with(
|
sendVideoResult.assertions().isCalledOnce().with(
|
||||||
any(),
|
any(),
|
||||||
any(),
|
any(),
|
||||||
|
|
@ -334,7 +335,7 @@ class AttachmentsPreviewPresenterTest {
|
||||||
initialState.textEditorState.setMarkdown(A_CAPTION)
|
initialState.textEditorState.setMarkdown(A_CAPTION)
|
||||||
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
initialState.eventSink(AttachmentsPreviewEvents.SendAttachment)
|
||||||
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing)
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Sending.Processing)
|
||||||
advanceUntilIdle()
|
assertThat(awaitItem().sendActionState).isEqualTo(SendActionState.Done)
|
||||||
sendAudioResult.assertions().isCalledOnce().with(
|
sendAudioResult.assertions().isCalledOnce().with(
|
||||||
any(),
|
any(),
|
||||||
any(),
|
any(),
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue