From c5ae4384ca52e6d7580c97bc63b320038de545fc Mon Sep 17 00:00:00 2001 From: skyflow-vivek Date: Thu, 10 Apr 2025 17:00:10 +0530 Subject: [PATCH 1/5] SK-1951 Add card brand choice enhancements --- Skyflow/src/main/kotlin/Skyflow/TextField.kt | 11 ++++++++--- Skyflow/src/test/java/com/Skyflow/CollectTest.kt | 14 ++++++++++---- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/Skyflow/src/main/kotlin/Skyflow/TextField.kt b/Skyflow/src/main/kotlin/Skyflow/TextField.kt index b7b1e7d..8887cca 100644 --- a/Skyflow/src/main/kotlin/Skyflow/TextField.kt +++ b/Skyflow/src/main/kotlin/Skyflow/TextField.kt @@ -162,6 +162,7 @@ class TextField @JvmOverloads constructor( null ) drawableIcon = copyIcon + drawableRight = drawableIcon }, 2000) // 2000 milliseconds = 2 seconds } } @@ -319,9 +320,13 @@ class TextField @JvmOverloads constructor( isCardMetadataUpdated = true this.options.cardMetadata = updateCollectOptions.cardMetadata this.setupField(this.collectInput, this.options) - if (updateCollectOptions.cardMetadata.scheme.size < 2) { - invokeUserOnChangeListener() - } + + val defaultCardType = if (this.options.cardMetadata.scheme.size > 1) + this.options.cardMetadata.scheme[0] + else cardType + updateCardChoice(defaultCardType, true) + changeCardIcon(defaultCardType) + invokeUserOnChangeListener() } @RequiresApi(Build.VERSION_CODES.JELLY_BEAN_MR1) diff --git a/Skyflow/src/test/java/com/Skyflow/CollectTest.kt b/Skyflow/src/test/java/com/Skyflow/CollectTest.kt index 43a024a..01daec0 100644 --- a/Skyflow/src/test/java/com/Skyflow/CollectTest.kt +++ b/Skyflow/src/test/java/com/Skyflow/CollectTest.kt @@ -1584,10 +1584,16 @@ class CollectTest { val cardNumber = container.create(activity, collectInput, options) cardNumber.onAttachedToWindow() + var scheme = arrayOf() cardNumber.on(EventName.CHANGE) { state -> - val value = state.get("value") - val cards = getCardSchemes(value.toString().length) - cardNumber.update(CollectElementOptions(cardMetadata = CardMetadata(cards))) + val value = state.getString("value") + if (value.length < 8 && scheme.isNotEmpty()) { + scheme = arrayOf(CardType.CARTES_BANCAIRES) + cardNumber.update(CollectElementOptions(cardMetadata = CardMetadata(scheme))) + } else if (value.length >= 8 && scheme.isEmpty()) { + scheme = getCardSchemes(value.length) + cardNumber.update(CollectElementOptions(cardMetadata = CardMetadata(scheme))) + } } var state = StateforText(cardNumber) @@ -1598,7 +1604,7 @@ class CollectTest { state = StateforText(cardNumber) Assert.assertTrue(state.getInternalState().getBoolean("isRequired")) Assert.assertNotNull(cardNumber.inputField.compoundDrawablesRelative[2]) - Assert.assertEquals(CardType.MASTERCARD, cardNumber.cardType) + Assert.assertEquals(CardType.CARTES_BANCAIRES, cardNumber.cardType) } } From b46986988849809b3664d67a1846344614809ba6 Mon Sep 17 00:00:00 2001 From: skyflow-vivek Date: Fri, 11 Apr 2025 09:36:05 +0000 Subject: [PATCH 2/5] [AUTOMATED] Private Release 1.25.1-dev.5d01a73 --- Skyflow/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Skyflow/build.gradle b/Skyflow/build.gradle index 9effe16..35438f5 100644 --- a/Skyflow/build.gradle +++ b/Skyflow/build.gradle @@ -10,7 +10,7 @@ ext { mGroupId = "com.skyflowapi.android" mArtifactId = "skyflow-android-sdk" mVersionCode = 1 - mVersionName = "1.25.1" + mVersionName = "1.25.1-dev.5d01a73" mLibraryName = "skyflow-android" mLibraryDescription = "Skyflow’s android SDK can be used to securely collect, tokenize, and display sensitive data in the mobile without exposing your front-end infrastructure to sensitive data." From 56c100400a48b52ef8682fa3fbb480cbdb22c808 Mon Sep 17 00:00:00 2001 From: skyflow-vivek Date: Mon, 14 Apr 2025 14:42:07 +0530 Subject: [PATCH 3/5] SK-1990 Update Sample and CHANGELOG --- CHANGELOG.md | 4 ++++ samples/src/main/java/com/Skyflow/CardBrandChoiceActivity.kt | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c8a2166..b44651d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,10 @@ All notable changes to this project will be documented in this file. +## [1.25.2] - 2025-04-14 +### Added +- Flexibility to display the desired card brand scheme for card brand choice. + ## [1.25.1] - 2025-01-09 ### Fixed - Fixed `onChange` listener not firing in card brand choice dropdown selection. diff --git a/samples/src/main/java/com/Skyflow/CardBrandChoiceActivity.kt b/samples/src/main/java/com/Skyflow/CardBrandChoiceActivity.kt index b6d3217..94ba7a7 100644 --- a/samples/src/main/java/com/Skyflow/CardBrandChoiceActivity.kt +++ b/samples/src/main/java/com/Skyflow/CardBrandChoiceActivity.kt @@ -111,13 +111,15 @@ class CardBrandChoiceActivity : AppCompatActivity() { } var scheme = arrayOf() + var calledUpdate = false cardNumber.on(EventName.CHANGE) { state -> Log.d(TAG, "change: state $state") val value = state.getString("value") if (value.length < 8 && scheme.isNotEmpty()) { scheme = arrayOf() cardNumber.update(CollectElementOptions(cardMetadata = CardMetadata(scheme))) - } else if (value.length >= 8 && scheme.isEmpty()) { + calledUpdate = false + } else if (value.length >= 8 && scheme.isEmpty() && !calledUpdate) { binLookup(value, object : Callback { override fun onSuccess(responseBody: Any) { scheme = getCardSchemes(responseBody as JSONArray) @@ -132,6 +134,7 @@ class CardBrandChoiceActivity : AppCompatActivity() { println(exception) } }) + calledUpdate = true } } From 9e3a14e3238239537740ae97ad9f8c2c3a619349 Mon Sep 17 00:00:00 2001 From: skyflow-vivek Date: Mon, 14 Apr 2025 09:12:49 +0000 Subject: [PATCH 4/5] [AUTOMATED] Private Release 1.25.1-dev.56c1004 --- Skyflow/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Skyflow/build.gradle b/Skyflow/build.gradle index 35438f5..def8cfb 100644 --- a/Skyflow/build.gradle +++ b/Skyflow/build.gradle @@ -10,7 +10,7 @@ ext { mGroupId = "com.skyflowapi.android" mArtifactId = "skyflow-android-sdk" mVersionCode = 1 - mVersionName = "1.25.1-dev.5d01a73" + mVersionName = "1.25.1-dev.56c1004" mLibraryName = "skyflow-android" mLibraryDescription = "Skyflow’s android SDK can be used to securely collect, tokenize, and display sensitive data in the mobile without exposing your front-end infrastructure to sensitive data." From 6e2cd3b2de49bb54d27c52d86e93e01ed1a888cd Mon Sep 17 00:00:00 2001 From: skyflow-vivek Date: Mon, 14 Apr 2025 16:28:22 +0530 Subject: [PATCH 5/5] SK-1990 Update CHANGELOG --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index b44651d..aba0d73 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ All notable changes to this project will be documented in this file. + ## [1.25.2] - 2025-04-14 ### Added - Flexibility to display the desired card brand scheme for card brand choice.