Skip to content

Commit 5d01a73

Browse files
Merge pull request #177 from skyflowapi/SK-1955-implement-for-card-brand-choice-enhancements
SK-1951 Add card brand choice enhancements
2 parents e8d6538 + c5ae438 commit 5d01a73

2 files changed

Lines changed: 18 additions & 7 deletions

File tree

Skyflow/src/main/kotlin/Skyflow/TextField.kt

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -162,6 +162,7 @@ class TextField @JvmOverloads constructor(
162162
null
163163
)
164164
drawableIcon = copyIcon
165+
drawableRight = drawableIcon
165166
}, 2000) // 2000 milliseconds = 2 seconds
166167
}
167168
}
@@ -319,9 +320,13 @@ class TextField @JvmOverloads constructor(
319320
isCardMetadataUpdated = true
320321
this.options.cardMetadata = updateCollectOptions.cardMetadata
321322
this.setupField(this.collectInput, this.options)
322-
if (updateCollectOptions.cardMetadata.scheme.size < 2) {
323-
invokeUserOnChangeListener()
324-
}
323+
324+
val defaultCardType = if (this.options.cardMetadata.scheme.size > 1)
325+
this.options.cardMetadata.scheme[0]
326+
else cardType
327+
updateCardChoice(defaultCardType, true)
328+
changeCardIcon(defaultCardType)
329+
invokeUserOnChangeListener()
325330
}
326331

327332
@RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1)

Skyflow/src/test/java/com/Skyflow/CollectTest.kt

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1584,10 +1584,16 @@ class CollectTest {
15841584
val cardNumber = container.create(activity, collectInput, options)
15851585
cardNumber.onAttachedToWindow()
15861586

1587+
var scheme = arrayOf<CardType>()
15871588
cardNumber.on(EventName.CHANGE) { state ->
1588-
val value = state.get("value")
1589-
val cards = getCardSchemes(value.toString().length)
1590-
cardNumber.update(CollectElementOptions(cardMetadata = CardMetadata(cards)))
1589+
val value = state.getString("value")
1590+
if (value.length < 8 && scheme.isNotEmpty()) {
1591+
scheme = arrayOf(CardType.CARTES_BANCAIRES)
1592+
cardNumber.update(CollectElementOptions(cardMetadata = CardMetadata(scheme)))
1593+
} else if (value.length >= 8 && scheme.isEmpty()) {
1594+
scheme = getCardSchemes(value.length)
1595+
cardNumber.update(CollectElementOptions(cardMetadata = CardMetadata(scheme)))
1596+
}
15911597
}
15921598

15931599
var state = StateforText(cardNumber)
@@ -1598,7 +1604,7 @@ class CollectTest {
15981604
state = StateforText(cardNumber)
15991605
Assert.assertTrue(state.getInternalState().getBoolean("isRequired"))
16001606
Assert.assertNotNull(cardNumber.inputField.compoundDrawablesRelative[2])
1601-
Assert.assertEquals(CardType.MASTERCARD, cardNumber.cardType)
1607+
Assert.assertEquals(CardType.CARTES_BANCAIRES, cardNumber.cardType)
16021608
}
16031609
}
16041610

0 commit comments

Comments
 (0)