diff --git a/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewModel.kt b/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewModel.kt index 303a4d5950..6c3c7b02c1 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewModel.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewModel.kt @@ -276,9 +276,14 @@ class OnboardingViewModel @AssistedInject constructor( kotlin.runCatching { registrationActionHandler.handleRegisterAction(registrationWizard, action) } .fold( onSuccess = { - when (it) { - is RegistrationResult.Success -> onSessionCreated(it.session, isAccountCreated = true) - is RegistrationResult.FlowResponse -> onFlowResponse(it.flowResult) + when { + action.ignoresResult() -> { + // do nothing + } + else -> when (it) { + is RegistrationResult.Success -> onSessionCreated(it.session, isAccountCreated = true) + is RegistrationResult.FlowResponse -> onFlowResponse(it.flowResult) + } } }, onFailure = { diff --git a/vector/src/main/java/im/vector/app/features/onboarding/RegistrationActionHandler.kt b/vector/src/main/java/im/vector/app/features/onboarding/RegistrationActionHandler.kt index 2938681ce7..b4998d2ba0 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/RegistrationActionHandler.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/RegistrationActionHandler.kt @@ -55,6 +55,12 @@ sealed interface RegisterAction { object RegisterDummy : RegisterAction } +fun RegisterAction.ignoresResult() = when (this) { + is RegisterAction.AddThreePid -> true + is RegisterAction.SendAgainThreePid -> true + else -> false +} + fun RegisterAction.hasLoadingState() = when (this) { is RegisterAction.CheckIfEmailHasBeenValidated -> false else -> true