From e3d46cfd151e7f496a3c0e7e515cceab5f049a89 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Thu, 26 May 2022 17:25:55 +0100 Subject: [PATCH] introducing a reset state for holding onto the reset inputs --- .../vector/app/features/onboarding/OnboardingViewModel.kt | 6 +++--- .../vector/app/features/onboarding/OnboardingViewState.kt | 7 ++++++- .../onboarding/ftueauth/AbstractFtueAuthFragment.kt | 2 +- .../FtueAuthResetPasswordMailConfirmationFragment.kt | 2 +- 4 files changed, 11 insertions(+), 6 deletions(-) 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 8c0eeb7b4f..39c5b9f3c1 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 @@ -377,7 +377,7 @@ class OnboardingViewModel @AssistedInject constructor( setState { copy( isLoading = false, - resetPasswordEmail = null + resetState = ResetState() ) } } @@ -466,7 +466,7 @@ class OnboardingViewModel @AssistedInject constructor( setState { copy( isLoading = false, - resetPasswordEmail = action.email + resetState = ResetState(email = action.email) ) } @@ -495,7 +495,7 @@ class OnboardingViewModel @AssistedInject constructor( setState { copy( isLoading = false, - resetPasswordEmail = null + resetState = ResetState() ) } diff --git a/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewState.kt b/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewState.kt index e91fee4d21..761d9a4472 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewState.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/OnboardingViewState.kt @@ -39,7 +39,7 @@ data class OnboardingViewState( @PersistState val signMode: SignMode = SignMode.Unknown, @PersistState - val resetPasswordEmail: String? = null, + val resetState: ResetState = ResetState(), // For SSO session recovery @PersistState @@ -84,6 +84,11 @@ data class PersonalizationState( fun supportsPersonalization() = supportsChangingDisplayName || supportsChangingProfilePicture } +@Parcelize +data class ResetState( + val email: String? = null +) : Parcelable + @Parcelize data class SelectedAuthenticationState( val description: AuthenticationDescription? = null, diff --git a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/AbstractFtueAuthFragment.kt b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/AbstractFtueAuthFragment.kt index 4fa94541e5..a851e13e36 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/AbstractFtueAuthFragment.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/AbstractFtueAuthFragment.kt @@ -153,7 +153,7 @@ abstract class AbstractFtueAuthFragment : VectorBaseFragment // True when email is sent with success to the homeserver - isResetPasswordStarted = state.resetPasswordEmail.isNullOrBlank().not() + isResetPasswordStarted = state.resetState.email.isNullOrBlank().not() updateWithState(state) } diff --git a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthResetPasswordMailConfirmationFragment.kt b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthResetPasswordMailConfirmationFragment.kt index fd7f14b1cc..76fbae6f40 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthResetPasswordMailConfirmationFragment.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthResetPasswordMailConfirmationFragment.kt @@ -44,7 +44,7 @@ class FtueAuthResetPasswordMailConfirmationFragment @Inject constructor() : Abst } private fun setupUi(state: OnboardingViewState) { - views.resetPasswordMailConfirmationNotice.text = getString(R.string.login_reset_password_mail_confirmation_notice, state.resetPasswordEmail) + views.resetPasswordMailConfirmationNotice.text = getString(R.string.login_reset_password_mail_confirmation_notice, state.resetState.email) } private fun submit() {