diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/BankTransferDetailsState.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/BankTransferDetailsState.kt index 0c8f3491fc..4bc38fbe31 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/BankTransferDetailsState.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/BankTransferDetailsState.kt @@ -14,13 +14,13 @@ data class BankTransferDetailsState( val ibanValidity: IBANValidator.Validity = IBANValidator.Validity.POTENTIALLY_VALID, val displayFindAccountInfoSheet: Boolean = false ) { - val canProceed = name.isNotEmpty() && email.isNotEmpty() && ibanValidity == IBANValidator.Validity.COMPLETELY_VALID + val canProceed = name.isNotBlank() && email.isNotBlank() && ibanValidity == IBANValidator.Validity.COMPLETELY_VALID fun asSEPADebitData(): StripeApi.SEPADebitData { return StripeApi.SEPADebitData( - iban = iban, - name = name, - email = email + iban = iban.trim(), + name = name.trim(), + email = email.trim() ) } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/IBANValidator.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/IBANValidator.kt index d5a8358cbf..83de82e23b 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/IBANValidator.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/app/subscription/donate/transfer/details/IBANValidator.kt @@ -95,17 +95,19 @@ object IBANValidator { } fun validate(iban: String, isIBANFieldFocused: Boolean): Validity { - if (iban.isEmpty()) { + val trimmedIban = iban.trim() + + if (trimmedIban.isEmpty()) { return Validity.POTENTIALLY_VALID } - val lengthValidity = validateLength(iban, isIBANFieldFocused) + val lengthValidity = validateLength(trimmedIban, isIBANFieldFocused) if (lengthValidity != Validity.COMPLETELY_VALID) { return lengthValidity } - val countryAndCheck = iban.take(4) - val rearranged = iban.drop(4) + countryAndCheck + val countryAndCheck = trimmedIban.take(4) + val rearranged = trimmedIban.drop(4) + countryAndCheck val expanded = rearranged.map { if (it.isLetter()) { (it - 'A') + 10