From fb52657b122806fbd869638e0e3a0d2fb8e2a294 Mon Sep 17 00:00:00 2001 From: Benoit Marty Date: Mon, 14 Oct 2024 10:49:55 +0200 Subject: [PATCH] Let `AsyncAction.Confirming` be an interface, with a `AsyncAction.ConfirmingNoParams` data object. This will allow inheritance of `AsyncAction.Confirming` with parameter(s). --- .../logout/impl/AccountDeactivationPresenter.kt | 2 +- .../logout/impl/AccountDeactivationStateProvider.kt | 2 +- .../logout/impl/ui/AccountDeactivationActionDialog.kt | 2 +- .../logout/impl/AccountDeactivationPresenterTest.kt | 6 +++--- .../logout/impl/AccountDeactivationViewTest.kt | 2 +- .../api/response/AcceptDeclineInviteStateProvider.kt | 4 ++-- .../impl/response/AcceptDeclineInvitePresenter.kt | 2 +- .../features/lockscreen/impl/unlock/PinUnlockView.kt | 2 +- .../login/impl/screens/qrcode/scan/QrCodeScanView.kt | 2 +- .../logout/api/direct/DirectLogoutStateProvider.kt | 2 +- .../android/features/logout/impl/LogoutPresenter.kt | 2 +- .../features/logout/impl/LogoutStateProvider.kt | 2 +- .../logout/impl/direct/DirectLogoutPresenter.kt | 2 +- .../features/logout/impl/ui/LogoutActionDialog.kt | 2 +- .../features/logout/impl/LogoutPresenterTest.kt | 8 ++++---- .../android/features/logout/impl/LogoutViewTest.kt | 2 +- .../logout/impl/direct/DefaultDirectLogoutViewTest.kt | 6 +++--- .../logout/impl/direct/DirectLogoutPresenterTest.kt | 8 ++++---- .../impl/blockedusers/BlockedUsersPresenter.kt | 2 +- .../blockedusers/BlockedUsersStatePreviewProvider.kt | 2 +- .../impl/blockedusers/BlockedUserViewTest.kt | 4 ++-- .../moderation/RoomMembersModerationPresenter.kt | 6 +++--- .../RoomMembersModerationStatePreviewProvider.kt | 4 ++-- .../RolesAndPermissionsPresenter.kt | 4 ++-- .../RolesAndPermissionsStateProvider.kt | 4 ++-- .../changeroles/ChangeRolesPresenter.kt | 4 ++-- .../changeroles/ChangeRolesStateProvider.kt | 4 ++-- .../permissions/ChangeRoomPermissionsPresenter.kt | 2 +- .../ChangeRoomPermissionsStatePreviewProvider.kt | 2 +- .../moderation/RoomMembersModerationPresenterTest.kt | 4 ++-- .../moderation/RoomMembersModerationViewTest.kt | 8 ++++---- .../RolesAndPermissionPresenterTest.kt | 2 +- .../rolesandpermissions/RolesAndPermissionsViewTest.kt | 10 +++++----- .../changeroles/ChangeRolesPresenterTest.kt | 8 ++++---- .../changeroles/ChangeRolesViewTest.kt | 8 ++++---- .../permissions/ChangeRoomPermissionsPresenterTest.kt | 2 +- .../permissions/ChangeRoomPermissionsViewTest.kt | 4 ++-- .../impl/disable/SecureBackupDisablePresenter.kt | 2 +- .../impl/disable/SecureBackupDisableStateProvider.kt | 2 +- .../impl/disable/SecureBackupDisablePresenterTest.kt | 6 +++--- .../verifysession/impl/VerifySelfSessionView.kt | 2 +- .../android/libraries/architecture/AsyncAction.kt | 6 ++++-- .../components/async/AsyncActionProvider.kt | 2 +- .../designsystem/components/async/AsyncActionView.kt | 2 +- .../troubleshoot/impl/TroubleshootNotificationsView.kt | 4 ++-- .../troubleshoot/impl/TroubleshootTestSuite.kt | 2 +- 46 files changed, 86 insertions(+), 84 deletions(-) diff --git a/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationPresenter.kt b/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationPresenter.kt index 8f0e895524..0cadab231f 100644 --- a/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationPresenter.kt +++ b/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationPresenter.kt @@ -51,7 +51,7 @@ class AccountDeactivationPresenter @Inject constructor( action ) } else { - action.value = AsyncAction.Confirming + action.value = AsyncAction.ConfirmingNoParams } AccountDeactivationEvents.CloseDialogs -> { action.value = AsyncAction.Uninitialized diff --git a/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationStateProvider.kt b/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationStateProvider.kt index 07ef6590bb..5de54fe86f 100644 --- a/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationStateProvider.kt +++ b/features/deactivation/impl/src/main/kotlin/io/element/android/features/logout/impl/AccountDeactivationStateProvider.kt @@ -20,7 +20,7 @@ open class AccountDeactivationStateProvider : PreviewParameterProvider Unit - AsyncAction.Confirming -> + is AsyncAction.Confirming -> AccountDeactivationConfirmationDialog( onSubmitClick = onConfirmClick, onDismiss = onDismissDialog diff --git a/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/AccountDeactivationPresenterTest.kt b/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/AccountDeactivationPresenterTest.kt index b34ac2f391..eee88bd615 100644 --- a/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/AccountDeactivationPresenterTest.kt +++ b/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/AccountDeactivationPresenterTest.kt @@ -74,7 +74,7 @@ class AccountDeactivationPresenterTest { skipItems(1) initialState.eventSink(AccountDeactivationEvents.DeactivateAccount(isRetry = false)) val updatedState = awaitItem() - assertThat(updatedState.accountDeactivationAction).isEqualTo(AsyncAction.Confirming) + assertThat(updatedState.accountDeactivationAction).isEqualTo(AsyncAction.ConfirmingNoParams) updatedState.eventSink(AccountDeactivationEvents.DeactivateAccount(isRetry = false)) val updatedState2 = awaitItem() assertThat(updatedState2.accountDeactivationAction).isEqualTo(AsyncAction.Loading) @@ -102,7 +102,7 @@ class AccountDeactivationPresenterTest { skipItems(2) initialState.eventSink(AccountDeactivationEvents.DeactivateAccount(isRetry = false)) val updatedState = awaitItem() - assertThat(updatedState.accountDeactivationAction).isEqualTo(AsyncAction.Confirming) + assertThat(updatedState.accountDeactivationAction).isEqualTo(AsyncAction.ConfirmingNoParams) updatedState.eventSink(AccountDeactivationEvents.DeactivateAccount(isRetry = false)) val updatedState2 = awaitItem() assertThat(updatedState2.accountDeactivationAction).isEqualTo(AsyncAction.Loading) @@ -135,7 +135,7 @@ class AccountDeactivationPresenterTest { skipItems(2) initialState.eventSink(AccountDeactivationEvents.DeactivateAccount(isRetry = false)) val updatedState = awaitItem() - assertThat(updatedState.accountDeactivationAction).isEqualTo(AsyncAction.Confirming) + assertThat(updatedState.accountDeactivationAction).isEqualTo(AsyncAction.ConfirmingNoParams) updatedState.eventSink(AccountDeactivationEvents.DeactivateAccount(isRetry = false)) val updatedState2 = awaitItem() assertThat(updatedState2.accountDeactivationAction).isEqualTo(AsyncAction.Loading) diff --git a/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/AccountDeactivationViewTest.kt b/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/AccountDeactivationViewTest.kt index 06d27e463b..a7c616e4cf 100644 --- a/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/AccountDeactivationViewTest.kt +++ b/features/deactivation/impl/src/test/kotlin/io/element/android/features/logout/impl/AccountDeactivationViewTest.kt @@ -71,7 +71,7 @@ class AccountDeactivationViewTest { deactivateFormState = aDeactivateFormState( password = A_PASSWORD, ), - accountDeactivationAction = AsyncAction.Confirming, + accountDeactivationAction = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder, ), ) diff --git a/features/invite/api/src/main/kotlin/io/element/android/features/invite/api/response/AcceptDeclineInviteStateProvider.kt b/features/invite/api/src/main/kotlin/io/element/android/features/invite/api/response/AcceptDeclineInviteStateProvider.kt index dcf7238b00..4c377590e6 100644 --- a/features/invite/api/src/main/kotlin/io/element/android/features/invite/api/response/AcceptDeclineInviteStateProvider.kt +++ b/features/invite/api/src/main/kotlin/io/element/android/features/invite/api/response/AcceptDeclineInviteStateProvider.kt @@ -20,13 +20,13 @@ open class AcceptDeclineInviteStateProvider : PreviewParameterProvider { currentInvite = Optional.of(event.invite) - declinedAction.value = AsyncAction.Confirming + declinedAction.value = AsyncAction.ConfirmingNoParams } is InternalAcceptDeclineInviteEvents.ConfirmDeclineInvite -> { diff --git a/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/unlock/PinUnlockView.kt b/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/unlock/PinUnlockView.kt index 8667b3806a..f0a611d56f 100644 --- a/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/unlock/PinUnlockView.kt +++ b/features/lockscreen/impl/src/main/kotlin/io/element/android/features/lockscreen/impl/unlock/PinUnlockView.kt @@ -96,7 +96,7 @@ fun PinUnlockView( latestOnSuccessLogout(state.signOutAction.data) } } - AsyncAction.Confirming, + is AsyncAction.Confirming, is AsyncAction.Failure, AsyncAction.Uninitialized -> Unit } diff --git a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanView.kt b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanView.kt index 2b38deed70..d32f66cebd 100644 --- a/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanView.kt +++ b/features/login/impl/src/main/kotlin/io/element/android/features/login/impl/screens/qrcode/scan/QrCodeScanView.kt @@ -189,7 +189,7 @@ private fun ColumnScope.Buttons( } } AsyncAction.Uninitialized, - AsyncAction.Confirming -> Unit + is AsyncAction.Confirming -> Unit } } } diff --git a/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/direct/DirectLogoutStateProvider.kt b/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/direct/DirectLogoutStateProvider.kt index 62b52dbde8..b59eb087ca 100644 --- a/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/direct/DirectLogoutStateProvider.kt +++ b/features/logout/api/src/main/kotlin/io/element/android/features/logout/api/direct/DirectLogoutStateProvider.kt @@ -14,7 +14,7 @@ open class DirectLogoutStateProvider : PreviewParameterProvider get() = sequenceOf( aDirectLogoutState(), - aDirectLogoutState(logoutAction = AsyncAction.Confirming), + aDirectLogoutState(logoutAction = AsyncAction.ConfirmingNoParams), aDirectLogoutState(logoutAction = AsyncAction.Loading), aDirectLogoutState(logoutAction = AsyncAction.Failure(Exception("Error"))), aDirectLogoutState(logoutAction = AsyncAction.Success("success")), diff --git a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutPresenter.kt b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutPresenter.kt index 65ffa75f02..d3a7e4c34b 100644 --- a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutPresenter.kt +++ b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutPresenter.kt @@ -64,7 +64,7 @@ class LogoutPresenter @Inject constructor( if (logoutAction.value.isConfirming() || event.ignoreSdkError) { localCoroutineScope.logout(logoutAction, event.ignoreSdkError) } else { - logoutAction.value = AsyncAction.Confirming + logoutAction.value = AsyncAction.ConfirmingNoParams } } LogoutEvents.CloseDialogs -> { diff --git a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutStateProvider.kt b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutStateProvider.kt index 1f648a51ee..364cdbebef 100644 --- a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutStateProvider.kt +++ b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/LogoutStateProvider.kt @@ -21,7 +21,7 @@ open class LogoutStateProvider : PreviewParameterProvider { aLogoutState(isLastDevice = true), aLogoutState(isLastDevice = false, backupUploadState = BackupUploadState.Uploading(66, 200)), aLogoutState(isLastDevice = true, backupUploadState = BackupUploadState.Done), - aLogoutState(logoutAction = AsyncAction.Confirming), + aLogoutState(logoutAction = AsyncAction.ConfirmingNoParams), aLogoutState(logoutAction = AsyncAction.Loading), aLogoutState(logoutAction = AsyncAction.Failure(Exception("Failed to logout"))), aLogoutState(backupUploadState = BackupUploadState.SteadyException(SteadyStateException.Connection("No network"))), diff --git a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/direct/DirectLogoutPresenter.kt b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/direct/DirectLogoutPresenter.kt index 4a5fead974..f78efc6cda 100644 --- a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/direct/DirectLogoutPresenter.kt +++ b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/direct/DirectLogoutPresenter.kt @@ -52,7 +52,7 @@ class DirectLogoutPresenter @Inject constructor( if (logoutAction.value.isConfirming() || event.ignoreSdkError) { localCoroutineScope.logout(logoutAction, event.ignoreSdkError) } else { - logoutAction.value = AsyncAction.Confirming + logoutAction.value = AsyncAction.ConfirmingNoParams } } DirectLogoutEvents.CloseDialogs -> { diff --git a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/ui/LogoutActionDialog.kt b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/ui/LogoutActionDialog.kt index 44f01e738d..3c43f2e099 100644 --- a/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/ui/LogoutActionDialog.kt +++ b/features/logout/impl/src/main/kotlin/io/element/android/features/logout/impl/ui/LogoutActionDialog.kt @@ -29,7 +29,7 @@ fun LogoutActionDialog( when (state) { AsyncAction.Uninitialized -> Unit - AsyncAction.Confirming -> + is AsyncAction.Confirming -> LogoutConfirmationDialog( onSubmitClick = onConfirmClick, onDismiss = onDismissDialog diff --git a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutPresenterTest.kt b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutPresenterTest.kt index 348f983b66..b1e48838aa 100644 --- a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutPresenterTest.kt +++ b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutPresenterTest.kt @@ -107,7 +107,7 @@ class LogoutPresenterTest { val initialState = awaitFirstItem() initialState.eventSink.invoke(LogoutEvents.Logout(ignoreSdkError = false)) val confirmationState = awaitItem() - assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.Confirming) + assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.ConfirmingNoParams) initialState.eventSink.invoke(LogoutEvents.CloseDialogs) val finalState = awaitItem() assertThat(finalState.logoutAction).isEqualTo(AsyncAction.Uninitialized) @@ -123,7 +123,7 @@ class LogoutPresenterTest { val initialState = awaitFirstItem() initialState.eventSink.invoke(LogoutEvents.Logout(ignoreSdkError = false)) val confirmationState = awaitItem() - assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.Confirming) + assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.ConfirmingNoParams) confirmationState.eventSink.invoke(LogoutEvents.Logout(ignoreSdkError = false)) val loadingState = awaitItem() assertThat(loadingState.logoutAction).isInstanceOf(AsyncAction.Loading::class.java) @@ -148,7 +148,7 @@ class LogoutPresenterTest { val initialState = awaitFirstItem() initialState.eventSink.invoke(LogoutEvents.Logout(ignoreSdkError = false)) val confirmationState = awaitItem() - assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.Confirming) + assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.ConfirmingNoParams) confirmationState.eventSink.invoke(LogoutEvents.Logout(ignoreSdkError = false)) val loadingState = awaitItem() assertThat(loadingState.logoutAction).isInstanceOf(AsyncAction.Loading::class.java) @@ -180,7 +180,7 @@ class LogoutPresenterTest { val initialState = awaitFirstItem() initialState.eventSink.invoke(LogoutEvents.Logout(ignoreSdkError = false)) val confirmationState = awaitItem() - assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.Confirming) + assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.ConfirmingNoParams) confirmationState.eventSink.invoke(LogoutEvents.Logout(ignoreSdkError = false)) val loadingState = awaitItem() assertThat(loadingState.logoutAction).isInstanceOf(AsyncAction.Loading::class.java) diff --git a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutViewTest.kt b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutViewTest.kt index 1621872813..5f59b141f2 100644 --- a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutViewTest.kt +++ b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/LogoutViewTest.kt @@ -48,7 +48,7 @@ class LogoutViewTest { val eventsRecorder = EventsRecorder() rule.setLogoutView( aLogoutState( - logoutAction = AsyncAction.Confirming, + logoutAction = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder ), ) diff --git a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/direct/DefaultDirectLogoutViewTest.kt b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/direct/DefaultDirectLogoutViewTest.kt index 9daf3cdf63..c859684e31 100644 --- a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/direct/DefaultDirectLogoutViewTest.kt +++ b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/direct/DefaultDirectLogoutViewTest.kt @@ -36,7 +36,7 @@ class DefaultDirectLogoutViewTest { val eventsRecorder = EventsRecorder() rule.setDefaultDirectLogoutView( state = aDirectLogoutState( - logoutAction = AsyncAction.Confirming, + logoutAction = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder, ) ) @@ -49,7 +49,7 @@ class DefaultDirectLogoutViewTest { val eventsRecorder = EventsRecorder() rule.setDefaultDirectLogoutView( state = aDirectLogoutState( - logoutAction = AsyncAction.Confirming, + logoutAction = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder, ) ) @@ -63,7 +63,7 @@ class DefaultDirectLogoutViewTest { val eventsRecorder = EventsRecorder() rule.setDefaultDirectLogoutView( state = aDirectLogoutState( - logoutAction = AsyncAction.Confirming, + logoutAction = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder, ) ) diff --git a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/direct/DirectLogoutPresenterTest.kt b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/direct/DirectLogoutPresenterTest.kt index a490b7b10d..5835686365 100644 --- a/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/direct/DirectLogoutPresenterTest.kt +++ b/features/logout/impl/src/test/kotlin/io/element/android/features/logout/impl/direct/DirectLogoutPresenterTest.kt @@ -88,7 +88,7 @@ class DirectLogoutPresenterTest { val initialState = awaitFirstItem() initialState.eventSink.invoke(DirectLogoutEvents.Logout(ignoreSdkError = false)) val confirmationState = awaitItem() - assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.Confirming) + assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.ConfirmingNoParams) initialState.eventSink.invoke(DirectLogoutEvents.CloseDialogs) val finalState = awaitItem() assertThat(finalState.logoutAction).isEqualTo(AsyncAction.Uninitialized) @@ -104,7 +104,7 @@ class DirectLogoutPresenterTest { val initialState = awaitFirstItem() initialState.eventSink.invoke(DirectLogoutEvents.Logout(ignoreSdkError = false)) val confirmationState = awaitItem() - assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.Confirming) + assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.ConfirmingNoParams) confirmationState.eventSink.invoke(DirectLogoutEvents.Logout(ignoreSdkError = false)) val loadingState = awaitItem() assertThat(loadingState.logoutAction).isInstanceOf(AsyncAction.Loading::class.java) @@ -129,7 +129,7 @@ class DirectLogoutPresenterTest { val initialState = awaitFirstItem() initialState.eventSink.invoke(DirectLogoutEvents.Logout(ignoreSdkError = false)) val confirmationState = awaitItem() - assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.Confirming) + assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.ConfirmingNoParams) confirmationState.eventSink.invoke(DirectLogoutEvents.Logout(ignoreSdkError = false)) val loadingState = awaitItem() assertThat(loadingState.logoutAction).isInstanceOf(AsyncAction.Loading::class.java) @@ -161,7 +161,7 @@ class DirectLogoutPresenterTest { val initialState = awaitFirstItem() initialState.eventSink.invoke(DirectLogoutEvents.Logout(ignoreSdkError = false)) val confirmationState = awaitItem() - assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.Confirming) + assertThat(confirmationState.logoutAction).isEqualTo(AsyncAction.ConfirmingNoParams) confirmationState.eventSink.invoke(DirectLogoutEvents.Logout(ignoreSdkError = false)) val loadingState = awaitItem() assertThat(loadingState.logoutAction).isInstanceOf(AsyncAction.Loading::class.java) diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersPresenter.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersPresenter.kt index a957986e87..1bf6935f5c 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersPresenter.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersPresenter.kt @@ -67,7 +67,7 @@ class BlockedUsersPresenter @Inject constructor( when (event) { is BlockedUsersEvents.Unblock -> { pendingUserToUnblock = event.userId - unblockUserAction.value = AsyncAction.Confirming + unblockUserAction.value = AsyncAction.ConfirmingNoParams } BlockedUsersEvents.ConfirmUnblock -> { pendingUserToUnblock?.let { diff --git a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersStatePreviewProvider.kt b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersStatePreviewProvider.kt index 15b6c6e10f..8bf5b026f8 100644 --- a/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersStatePreviewProvider.kt +++ b/features/preferences/impl/src/main/kotlin/io/element/android/features/preferences/impl/blockedusers/BlockedUsersStatePreviewProvider.kt @@ -19,7 +19,7 @@ class BlockedUsersStatePreviewProvider : PreviewParameterProvider() rule.setBlockedUsersView( aBlockedUsersState( - unblockUserAction = AsyncAction.Confirming, + unblockUserAction = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder ), ) @@ -78,7 +78,7 @@ class BlockedUserViewTest { val eventsRecorder = EventsRecorder() rule.setBlockedUsersView( aBlockedUsersState( - unblockUserAction = AsyncAction.Confirming, + unblockUserAction = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder ), ) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationPresenter.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationPresenter.kt index 0b9e744dd2..97e518fb47 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationPresenter.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationPresenter.kt @@ -77,7 +77,7 @@ class RoomMembersModerationPresenter @Inject constructor( coroutineScope.launch { selectedMember = event.roomMember if (event.roomMember.membership == RoomMembershipState.BAN && canBan()) { - unbanUserAsyncAction.value = AsyncAction.Confirming + unbanUserAsyncAction.value = AsyncAction.ConfirmingNoParams } else { moderationActions = buildList { add(ModerationAction.DisplayProfile(event.roomMember.userId)) @@ -109,7 +109,7 @@ class RoomMembersModerationPresenter @Inject constructor( coroutineScope.banUser(it.userId, banUserAsyncAction) } } else { - banUserAsyncAction.value = AsyncAction.Confirming + banUserAsyncAction.value = AsyncAction.ConfirmingNoParams } } is RoomMembersModerationEvents.UnbanUser -> { @@ -119,7 +119,7 @@ class RoomMembersModerationPresenter @Inject constructor( coroutineScope.unbanUser(it.userId, unbanUserAsyncAction) } } else { - unbanUserAsyncAction.value = AsyncAction.Confirming + unbanUserAsyncAction.value = AsyncAction.ConfirmingNoParams } } is RoomMembersModerationEvents.Reset -> { diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationStatePreviewProvider.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationStatePreviewProvider.kt index d7fb509995..2642cc501a 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationStatePreviewProvider.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/members/moderation/RoomMembersModerationStatePreviewProvider.kt @@ -56,11 +56,11 @@ class RoomMembersModerationStatePreviewProvider : PreviewParameterProvider { - changeOwnRoleAction.value = AsyncAction.Confirming + changeOwnRoleAction.value = AsyncAction.ConfirmingNoParams } is RolesAndPermissionsEvents.CancelPendingAction -> { changeOwnRoleAction.value = AsyncAction.Uninitialized @@ -77,7 +77,7 @@ class RolesAndPermissionsPresenter @Inject constructor( is RolesAndPermissionsEvents.ResetPermissions -> if (resetPermissionsAction.value.isConfirming()) { coroutineScope.resetPermissions(resetPermissionsAction) } else { - resetPermissionsAction.value = AsyncAction.Confirming + resetPermissionsAction.value = AsyncAction.ConfirmingNoParams } } } diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsStateProvider.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsStateProvider.kt index 9dbaa3da96..53cd602c8b 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsStateProvider.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/RolesAndPermissionsStateProvider.kt @@ -18,7 +18,7 @@ class RolesAndPermissionsStateProvider : PreviewParameterProvider { if (role == RoomMember.Role.ADMIN && selectedUsers != usersWithRole && !saveState.value.isConfirming()) { // Confirm adding admin - saveState.value = AsyncAction.Confirming + saveState.value = AsyncAction.ConfirmingNoParams } else if (!saveState.value.isLoading()) { coroutineScope.save(usersWithRole.value, selectedUsers, saveState) } @@ -145,7 +145,7 @@ class ChangeRolesPresenter @AssistedInject constructor( is ChangeRolesEvent.Exit -> { exitState.value = if (exitState.value.isUninitialized() && hasPendingChanges) { // Has pending changes, confirm exit - AsyncAction.Confirming + AsyncAction.ConfirmingNoParams } else { // No pending changes, exit immediately AsyncAction.Success(Unit) diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesStateProvider.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesStateProvider.kt index b48677423e..82a8f0696b 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesStateProvider.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/changeroles/ChangeRolesStateProvider.kt @@ -36,8 +36,8 @@ class ChangeRolesStateProvider : PreviewParameterProvider { searchResults = SearchBarResultState.Results(MembersByRole(aRoomMemberList().take(1).toImmutableList())), selectedUsers = aMatrixUserList().take(1).toImmutableList(), ), - aChangeRolesStateWithSelectedUsers().copy(exitState = AsyncAction.Confirming), - aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.Confirming), + aChangeRolesStateWithSelectedUsers().copy(exitState = AsyncAction.ConfirmingNoParams), + aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.ConfirmingNoParams), aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.Loading), aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.Success(Unit)), aChangeRolesStateWithSelectedUsers().copy(savingState = AsyncAction.Failure(Exception("boom"))), diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsPresenter.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsPresenter.kt index ba69ed2b08..882ca58be1 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsPresenter.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsPresenter.kt @@ -95,7 +95,7 @@ class ChangeRoomPermissionsPresenter @AssistedInject constructor( confirmExitAction = if (!hasChanges || confirmExitAction.isConfirming()) { AsyncAction.Success(Unit) } else { - AsyncAction.Confirming + AsyncAction.ConfirmingNoParams } } is ChangeRoomPermissionsEvent.ResetPendingActions -> { diff --git a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStatePreviewProvider.kt b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStatePreviewProvider.kt index d6099dc7f8..d916131f30 100644 --- a/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStatePreviewProvider.kt +++ b/features/roomdetails/impl/src/main/kotlin/io/element/android/features/roomdetails/impl/rolesandpermissions/permissions/ChangeRoomPermissionsStatePreviewProvider.kt @@ -26,7 +26,7 @@ class ChangeRoomPermissionsStatePreviewProvider : PreviewParameterProvider() rule.setRolesAndPermissionsView( state = aRolesAndPermissionsState( - resetPermissionsAction = AsyncAction.Confirming, + resetPermissionsAction = AsyncAction.ConfirmingNoParams, eventSink = recorder, ), ) @@ -111,7 +111,7 @@ class RolesAndPermissionsViewTest { val recorder = EventsRecorder() rule.setRolesAndPermissionsView( state = aRolesAndPermissionsState( - resetPermissionsAction = AsyncAction.Confirming, + resetPermissionsAction = AsyncAction.ConfirmingNoParams, eventSink = recorder, ), ) @@ -124,7 +124,7 @@ class RolesAndPermissionsViewTest { val recorder = EventsRecorder() rule.setRolesAndPermissionsView( state = aRolesAndPermissionsState( - changeOwnRoleAction = AsyncAction.Confirming, + changeOwnRoleAction = AsyncAction.ConfirmingNoParams, eventSink = recorder, ), ) @@ -138,7 +138,7 @@ class RolesAndPermissionsViewTest { val recorder = EventsRecorder() rule.setRolesAndPermissionsView( state = aRolesAndPermissionsState( - changeOwnRoleAction = AsyncAction.Confirming, + changeOwnRoleAction = AsyncAction.ConfirmingNoParams, eventSink = recorder, ), ) @@ -152,7 +152,7 @@ class RolesAndPermissionsViewTest { val recorder = EventsRecorder() rule.setRolesAndPermissionsView( state = aRolesAndPermissionsState( - changeOwnRoleAction = AsyncAction.Confirming, + changeOwnRoleAction = AsyncAction.ConfirmingNoParams, eventSink = recorder, ), ) diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/changeroles/ChangeRolesPresenterTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/changeroles/ChangeRolesPresenterTest.kt index bff07e06fc..632cd051af 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/changeroles/ChangeRolesPresenterTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/changeroles/ChangeRolesPresenterTest.kt @@ -229,7 +229,7 @@ class ChangeRolesPresenterTest { awaitItem().eventSink(ChangeRolesEvent.Exit) val confirmingState = awaitItem() - assertThat(confirmingState.exitState).isEqualTo(AsyncAction.Confirming) + assertThat(confirmingState.exitState).isEqualTo(AsyncAction.ConfirmingNoParams) confirmingState.eventSink(ChangeRolesEvent.CancelExit) assertThat(awaitItem().exitState).isEqualTo(AsyncAction.Uninitialized) @@ -257,7 +257,7 @@ class ChangeRolesPresenterTest { skipItems(1) updatedState.eventSink(ChangeRolesEvent.Exit) - assertThat(awaitItem().exitState).isEqualTo(AsyncAction.Confirming) + assertThat(awaitItem().exitState).isEqualTo(AsyncAction.ConfirmingNoParams) updatedState.eventSink(ChangeRolesEvent.Exit) assertThat(awaitItem().exitState).isEqualTo(AsyncAction.Success(Unit)) @@ -284,7 +284,7 @@ class ChangeRolesPresenterTest { initialState.eventSink(ChangeRolesEvent.UserSelectionToggled(MatrixUser(A_USER_ID_2))) awaitItem().eventSink(ChangeRolesEvent.Save) val confirmingState = awaitItem() - assertThat(confirmingState.savingState).isEqualTo(AsyncAction.Confirming) + assertThat(confirmingState.savingState).isEqualTo(AsyncAction.ConfirmingNoParams) confirmingState.eventSink(ChangeRolesEvent.Save) assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Success(Unit)) @@ -309,7 +309,7 @@ class ChangeRolesPresenterTest { awaitItem().eventSink(ChangeRolesEvent.Save) val confirmingState = awaitItem() - assertThat(confirmingState.savingState).isEqualTo(AsyncAction.Confirming) + assertThat(confirmingState.savingState).isEqualTo(AsyncAction.ConfirmingNoParams) confirmingState.eventSink(ChangeRolesEvent.CancelSave) assertThat(awaitItem().savingState).isEqualTo(AsyncAction.Uninitialized) diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/changeroles/ChangeRolesViewTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/changeroles/ChangeRolesViewTest.kt index 949d102340..8615cb5209 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/changeroles/ChangeRolesViewTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/changeroles/ChangeRolesViewTest.kt @@ -140,7 +140,7 @@ class ChangeRolesViewTest { rule.setChangeRolesContent( state = aChangeRolesState( isSearchActive = true, - exitState = AsyncAction.Confirming, + exitState = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder, ), ) @@ -156,7 +156,7 @@ class ChangeRolesViewTest { rule.setChangeRolesContent( state = aChangeRolesState( isSearchActive = true, - exitState = AsyncAction.Confirming, + exitState = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder, ), ) @@ -173,7 +173,7 @@ class ChangeRolesViewTest { state = aChangeRolesState( role = RoomMember.Role.ADMIN, isSearchActive = true, - savingState = AsyncAction.Confirming, + savingState = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder, ), ) @@ -190,7 +190,7 @@ class ChangeRolesViewTest { state = aChangeRolesState( role = RoomMember.Role.ADMIN, isSearchActive = true, - savingState = AsyncAction.Confirming, + savingState = AsyncAction.ConfirmingNoParams, eventSink = eventsRecorder, ), ) diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/permissions/ChangeRoomPermissionsPresenterTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/permissions/ChangeRoomPermissionsPresenterTest.kt index b57d8df1ab..f963ba28c2 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/permissions/ChangeRoomPermissionsPresenterTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/permissions/ChangeRoomPermissionsPresenterTest.kt @@ -267,7 +267,7 @@ class ChangeRoomPermissionsPresenterTest { assertThat(awaitItem().hasChanges).isTrue() state.eventSink(ChangeRoomPermissionsEvent.Exit) - assertThat(awaitItem().confirmExitAction).isEqualTo(AsyncAction.Confirming) + assertThat(awaitItem().confirmExitAction).isEqualTo(AsyncAction.ConfirmingNoParams) state.eventSink(ChangeRoomPermissionsEvent.Exit) assertThat(awaitItem().confirmExitAction).isEqualTo(AsyncAction.Success(Unit)) diff --git a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/permissions/ChangeRoomPermissionsViewTest.kt b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/permissions/ChangeRoomPermissionsViewTest.kt index f85e59ea32..a73973609a 100644 --- a/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/permissions/ChangeRoomPermissionsViewTest.kt +++ b/features/roomdetails/impl/src/test/kotlin/io/element/android/features/roomdetails/rolesandpermissions/permissions/ChangeRoomPermissionsViewTest.kt @@ -82,7 +82,7 @@ class ChangeRoomPermissionsViewTest { state = aChangeRoomPermissionsState( section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, - confirmExitAction = AsyncAction.Confirming, + confirmExitAction = AsyncAction.ConfirmingNoParams, eventSink = recorder, ), eventsRecorder = recorder, @@ -98,7 +98,7 @@ class ChangeRoomPermissionsViewTest { state = aChangeRoomPermissionsState( section = ChangeRoomPermissionsSection.RoomDetails, hasChanges = true, - confirmExitAction = AsyncAction.Confirming, + confirmExitAction = AsyncAction.ConfirmingNoParams, eventSink = recorder, ), eventsRecorder = recorder, diff --git a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisablePresenter.kt b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisablePresenter.kt index def6e5c2d3..4e661e0a13 100644 --- a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisablePresenter.kt +++ b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisablePresenter.kt @@ -40,7 +40,7 @@ class SecureBackupDisablePresenter @Inject constructor( is SecureBackupDisableEvents.DisableBackup -> if (disableAction.value.isConfirming()) { coroutineScope.disableBackup(disableAction) } else { - disableAction.value = AsyncAction.Confirming + disableAction.value = AsyncAction.ConfirmingNoParams } SecureBackupDisableEvents.DismissDialogs -> { disableAction.value = AsyncAction.Uninitialized diff --git a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisableStateProvider.kt b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisableStateProvider.kt index 8c47eeb0a3..3c2969e35e 100644 --- a/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisableStateProvider.kt +++ b/features/securebackup/impl/src/main/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisableStateProvider.kt @@ -15,7 +15,7 @@ open class SecureBackupDisableStateProvider : PreviewParameterProvider get() = sequenceOf( aSecureBackupDisableState(), - aSecureBackupDisableState(disableAction = AsyncAction.Confirming), + aSecureBackupDisableState(disableAction = AsyncAction.ConfirmingNoParams), aSecureBackupDisableState(disableAction = AsyncAction.Loading), aSecureBackupDisableState(disableAction = AsyncAction.Failure(Exception("Failed to disable"))), // Add other states here diff --git a/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisablePresenterTest.kt b/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisablePresenterTest.kt index 5a3d1caab9..b0d6399c04 100644 --- a/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisablePresenterTest.kt +++ b/features/securebackup/impl/src/test/kotlin/io/element/android/features/securebackup/impl/disable/SecureBackupDisablePresenterTest.kt @@ -47,7 +47,7 @@ class SecureBackupDisablePresenterTest { val initialState = awaitItem() initialState.eventSink(SecureBackupDisableEvents.DisableBackup) val state = awaitItem() - assertThat(state.disableAction).isEqualTo(AsyncAction.Confirming) + assertThat(state.disableAction).isEqualTo(AsyncAction.ConfirmingNoParams) initialState.eventSink(SecureBackupDisableEvents.DismissDialogs) val finalState = awaitItem() assertThat(finalState.disableAction).isEqualTo(AsyncAction.Uninitialized) @@ -64,7 +64,7 @@ class SecureBackupDisablePresenterTest { assertThat(initialState.disableAction).isEqualTo(AsyncAction.Uninitialized) initialState.eventSink(SecureBackupDisableEvents.DisableBackup) val state = awaitItem() - assertThat(state.disableAction).isEqualTo(AsyncAction.Confirming) + assertThat(state.disableAction).isEqualTo(AsyncAction.ConfirmingNoParams) initialState.eventSink(SecureBackupDisableEvents.DisableBackup) val loadingState = awaitItem() assertThat(loadingState.disableAction).isInstanceOf(AsyncAction.Loading::class.java) @@ -88,7 +88,7 @@ class SecureBackupDisablePresenterTest { assertThat(initialState.disableAction).isEqualTo(AsyncAction.Uninitialized) initialState.eventSink(SecureBackupDisableEvents.DisableBackup) val state = awaitItem() - assertThat(state.disableAction).isEqualTo(AsyncAction.Confirming) + assertThat(state.disableAction).isEqualTo(AsyncAction.ConfirmingNoParams) initialState.eventSink(SecureBackupDisableEvents.DisableBackup) val loadingState = awaitItem() assertThat(loadingState.disableAction).isInstanceOf(AsyncAction.Loading::class.java) diff --git a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt index 2364688c03..5b0c9105ad 100644 --- a/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt +++ b/features/verifysession/impl/src/main/kotlin/io/element/android/features/verifysession/impl/VerifySelfSessionView.kt @@ -158,7 +158,7 @@ fun VerifySelfSessionView( latestOnSuccessLogout(state.signOutAction.data) } } - AsyncAction.Confirming, + is AsyncAction.Confirming, is AsyncAction.Failure, AsyncAction.Uninitialized -> Unit } diff --git a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/AsyncAction.kt b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/AsyncAction.kt index 48fe1d336b..e674a170bd 100644 --- a/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/AsyncAction.kt +++ b/libraries/architecture/src/main/kotlin/io/element/android/libraries/architecture/AsyncAction.kt @@ -26,7 +26,9 @@ sealed interface AsyncAction { /** * Represents an operation that is currently waiting for user confirmation. */ - data object Confirming : AsyncAction + interface Confirming : AsyncAction + + data object ConfirmingNoParams : Confirming /** * Represents an operation that is currently ongoing. @@ -70,7 +72,7 @@ sealed interface AsyncAction { fun isUninitialized(): Boolean = this == Uninitialized - fun isConfirming(): Boolean = this == Confirming + fun isConfirming(): Boolean = this is Confirming fun isLoading(): Boolean = this == Loading diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/async/AsyncActionProvider.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/async/AsyncActionProvider.kt index 97b2dc2bdf..87cb43af75 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/async/AsyncActionProvider.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/async/AsyncActionProvider.kt @@ -14,7 +14,7 @@ open class AsyncActionProvider : PreviewParameterProvider> { override val values: Sequence> get() = sequenceOf( AsyncAction.Uninitialized, - AsyncAction.Confirming, + AsyncAction.ConfirmingNoParams, AsyncAction.Loading, AsyncAction.Failure(Exception("An error occurred")), AsyncAction.Success(Unit), diff --git a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/async/AsyncActionView.kt b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/async/AsyncActionView.kt index be3e2ef7d8..15accbd36c 100644 --- a/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/async/AsyncActionView.kt +++ b/libraries/designsystem/src/main/kotlin/io/element/android/libraries/designsystem/components/async/AsyncActionView.kt @@ -42,7 +42,7 @@ fun AsyncActionView( ) { when (async) { AsyncAction.Uninitialized -> Unit - AsyncAction.Confirming -> confirmationDialog() + is AsyncAction.Confirming -> confirmationDialog() is AsyncAction.Loading -> progressDialog() is AsyncAction.Failure -> { if (onRetry == null) { diff --git a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/TroubleshootNotificationsView.kt b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/TroubleshootNotificationsView.kt index c9b8b1b5fd..5d9220c3bd 100644 --- a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/TroubleshootNotificationsView.kt +++ b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/TroubleshootNotificationsView.kt @@ -122,7 +122,7 @@ private fun ColumnScope.TroubleshootTestView( private fun ColumnScope.TroubleshootNotificationsContent(state: TroubleshootNotificationsState) { when (state.testSuiteState.mainState) { AsyncAction.Loading, - AsyncAction.Confirming, + is AsyncAction.Confirming, is AsyncAction.Success, is AsyncAction.Failure -> { TestSuiteView( @@ -150,7 +150,7 @@ private fun ColumnScope.TroubleshootNotificationsContent(state: TroubleshootNoti }) RunTestButton(state = state) } - AsyncAction.Confirming -> { + is AsyncAction.Confirming -> { ListItem(headlineContent = { Text( text = stringResource(id = R.string.troubleshoot_notifications_screen_waiting) diff --git a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/TroubleshootTestSuite.kt b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/TroubleshootTestSuite.kt index 8bea320553..9b7de10325 100644 --- a/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/TroubleshootTestSuite.kt +++ b/libraries/troubleshoot/impl/src/main/kotlin/io/element/android/libraries/troubleshoot/impl/TroubleshootTestSuite.kt @@ -102,7 +102,7 @@ fun List.computeMainState(): AsyncAction AsyncAction.Loading else -> { if (any { it.status is NotificationTroubleshootTestState.Status.WaitingForUser }) { - AsyncAction.Confirming + AsyncAction.ConfirmingNoParams } else if (any { it.status is NotificationTroubleshootTestState.Status.Failure }) { AsyncAction.Failure(Exception("Some tests failed")) } else {