From 2dae13f6c8af66978c30a1fbf4e920036d431e13 Mon Sep 17 00:00:00 2001 From: Adam Brown Date: Tue, 26 Jul 2022 17:05:25 +0100 Subject: [PATCH] applying the password character limit to the keyboard done action --- .../ftueauth/FtueAuthCombinedRegisterFragment.kt | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthCombinedRegisterFragment.kt b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthCombinedRegisterFragment.kt index 639045b5c0..c69706a17b 100644 --- a/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthCombinedRegisterFragment.kt +++ b/vector/src/main/java/im/vector/app/features/onboarding/ftueauth/FtueAuthCombinedRegisterFragment.kt @@ -75,7 +75,11 @@ class FtueAuthCombinedRegisterFragment @Inject constructor() : AbstractSSOFtueAu setupSubmitButton() views.createAccountRoot.realignPercentagesToParent() views.editServerButton.debouncedClicks { viewModel.handle(OnboardingAction.PostViewEvent(OnboardingViewEvents.EditServerSelection)) } - views.createAccountPasswordInput.setOnImeDoneListener { submit() } + views.createAccountPasswordInput.setOnImeDoneListener { + if (canSubmit(views.createAccountInput.content(), views.createAccountPasswordInput.content())) { + submit() + } + } views.createAccountInput.onTextChange(viewLifecycleOwner) { viewModel.handle(OnboardingAction.ResetSelectedRegistrationUserName) @@ -87,15 +91,19 @@ class FtueAuthCombinedRegisterFragment @Inject constructor() : AbstractSSOFtueAu } } + private fun canSubmit(account: CharSequence, password: CharSequence): Boolean { + val accountIsValid = account.isNotEmpty() + val passwordIsValid = password.length >= MINIMUM_PASSWORD_LENGTH + return accountIsValid && passwordIsValid + } + private fun setupSubmitButton() { views.createAccountSubmit.setOnClickListener { submit() } views.createAccountInput.clearErrorOnChange(viewLifecycleOwner) views.createAccountPasswordInput.clearErrorOnChange(viewLifecycleOwner) combine(views.createAccountInput.editText().textChanges(), views.createAccountPasswordInput.editText().textChanges()) { account, password -> - val accountIsValid = account.isNotEmpty() - val passwordIsValid = password.length >= MINIMUM_PASSWORD_LENGTH - views.createAccountSubmit.isEnabled = accountIsValid && passwordIsValid + views.createAccountSubmit.isEnabled = canSubmit(account, password) }.launchIn(viewLifecycleOwner.lifecycleScope) }