From 8302af2dc6a19f27791bf7ff6adc97c5e8e90fec Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Thu, 16 Mar 2023 15:39:38 +0100 Subject: [PATCH] Fix close error dialog has no effect. --- .../features/rageshake/impl/bugreport/BugReportEvents.kt | 2 ++ .../features/rageshake/impl/bugreport/BugReportPresenter.kt | 4 ++++ .../features/rageshake/impl/bugreport/BugReportView.kt | 1 + .../rageshake/impl/bugreport/BugReportPresenterTest.kt | 5 +++++ 4 files changed, 12 insertions(+) diff --git a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportEvents.kt b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportEvents.kt index 9ab6c46a9a..372805bca5 100644 --- a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportEvents.kt +++ b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportEvents.kt @@ -19,6 +19,8 @@ package io.element.android.features.rageshake.impl.bugreport sealed interface BugReportEvents { object SendBugReport : BugReportEvents object ResetAll : BugReportEvents + object ClearError : BugReportEvents + data class SetDescription(val description: String) : BugReportEvents data class SetSendLog(val sendLog: Boolean) : BugReportEvents data class SetSendCrashLog(val sendCrashlog: Boolean) : BugReportEvents diff --git a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenter.kt b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenter.kt index 5acb2bd4b1..1a472d0820 100644 --- a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenter.kt +++ b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenter.kt @@ -109,6 +109,10 @@ class BugReportPresenter @Inject constructor( is BugReportEvents.SetSendScreenshot -> updateFormState(formState) { copy(sendScreenshot = event.sendScreenshot) } + BugReportEvents.ClearError -> { + sendingProgress.value = 0f + sendingAction.value = Async.Uninitialized + } } } diff --git a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportView.kt b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportView.kt index 46a4f7b5c3..794f0f3cea 100644 --- a/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportView.kt +++ b/features/rageshake/impl/src/main/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportView.kt @@ -204,6 +204,7 @@ fun BugReportView( } is Async.Failure -> ErrorDialog( content = state.sending.error.toString(), + onDismiss = { state.eventSink(BugReportEvents.ClearError) } ) else -> Unit } diff --git a/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenterTest.kt b/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenterTest.kt index 93ed963543..1390dd1c8c 100644 --- a/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenterTest.kt +++ b/features/rageshake/impl/src/test/kotlin/io/element/android/features/rageshake/impl/bugreport/BugReportPresenterTest.kt @@ -222,6 +222,11 @@ class BugReportPresenterTest { // Failure assertThat(awaitItem().sendingProgress).isEqualTo(0f) assertThat((awaitItem().sending as Async.Failure).error.message).isEqualTo(A_FAILURE_REASON) + // Reset failure + initialState.eventSink.invoke(BugReportEvents.ClearError) + val lastItem = awaitItem() + assertThat(lastItem.sendingProgress).isEqualTo(0f) + assertThat(lastItem.sending).isInstanceOf(Async.Uninitialized::class.java) } }