Skip to content

Commit

Permalink
Display address lookup data on 2 lines
Browse files Browse the repository at this point in the history
COAND-1069
  • Loading branch information
OscarSpruit committed Feb 18, 2025
1 parent 3df22d0 commit 4ea3823
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 28 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -726,7 +726,7 @@ class CardView @JvmOverloads constructor(
}

private fun updateAddressLookupInputText(addressOutputData: AddressOutputData) {
binding.autoCompleteTextViewAddressLookup.setText(addressOutputData.toString())
binding.autoCompleteTextViewAddressLookup.setText(addressOutputData.formatted())
}

private fun updateAddressHint(addressFormUIState: AddressFormUIState, isOptional: Boolean) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ data class AddressOutputData(
val countryOptions: List<AddressListItem>,
val stateOptions: List<AddressListItem>
) : OutputData {

override val isValid: Boolean
get() = postalCode.validation.isValid() &&
street.validation.isValid() &&
Expand All @@ -34,15 +35,26 @@ data class AddressOutputData(
city.validation.isValid() &&
country.validation.isValid()

override fun toString(): String {
return listOf(
fun formatted(): String {
val line1 = arrayOf(
street.value,
houseNumberOrName.value,
apartmentSuite.value,
)
.filter { it.isNotBlank() }
.joinToString(" ")

val line2 = arrayOf(
postalCode.value,
city.value,
stateOrProvince.value,
country.value,
).filter { it.isNotBlank() }.joinToString(" ")
)
.filter { it.isNotBlank() }
.joinToString(", ")

return arrayOf(line1, line2)
.filter { it.isNotBlank() }
.joinToString("\n")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -62,27 +62,29 @@ data class LookupOption(
val lookupAddress: LookupAddress,
val isLoading: Boolean = false
) {
override fun toString(): String {
return listOf(
lookupAddress.address.street,
lookupAddress.address.houseNumberOrName,
lookupAddress.address.apartmentSuite,
lookupAddress.address.postalCode,
lookupAddress.address.city,
lookupAddress.address.stateOrProvince,
lookupAddress.address.country,
).filter { !it.isNullOrBlank() }.joinToString(" ")

val title: String = formatTitle()

private fun formatTitle(): String = with(lookupAddress.address) {
arrayOf(
street,
houseNumberOrName,
apartmentSuite.orEmpty(),
)
.filter { it.isNotBlank() }
.joinToString(" ")
}

val title
get() = lookupAddress.address.street.ifBlank {
toString()
}
val subtitle = formatSubtitle()

val subtitle
get() = if (lookupAddress.address.street.isBlank()) {
""
} else {
toString()
}
private fun formatSubtitle() = with(lookupAddress.address) {
arrayOf(
postalCode,
city,
stateOrProvince,
country,
)
.filter { it.isNotBlank() }
.joinToString(", ")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,10 @@ import com.adyen.checkout.components.core.internal.ui.model.Validation
import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Test

class AddressOutputDataTest {
internal class AddressOutputDataTest {

@Test
fun addressOutputDataToString() {
fun addressOutputDataFormatted() {
val addressOutputData = AddressOutputData(
postalCode = FieldState("postalCode", Validation.Valid),
houseNumberOrName = FieldState("houseNumberOrName", Validation.Valid),
Expand All @@ -29,7 +30,7 @@ class AddressOutputDataTest {
stateOptions = emptyList(),
)

val expected = "street houseNumberOrName apartmentSuite postalCode city stateOrProvince country"
assertEquals(expected, addressOutputData.toString())
val expected = "street houseNumberOrName apartmentSuite\npostalCode, city, stateOrProvince, country"
assertEquals(expected, addressOutputData.formatted())
}
}

0 comments on commit 4ea3823

Please sign in to comment.