mirror of
https://github.com/signalapp/Signal-Android.git
synced 2025-12-25 05:27:42 +00:00
Trim IBAN input before validating value.
This commit is contained in:
committed by
Cody Henthorne
parent
5aec4b4571
commit
073e138ab2
@@ -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()
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user