diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/model/AutofillSaveItem.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/model/AutofillSaveItem.kt index 3233d84675..4e727728f1 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/model/AutofillSaveItem.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/model/AutofillSaveItem.kt @@ -16,9 +16,11 @@ sealed class AutofillSaveItem : Parcelable { * @property expirationMonth The expiration month in string form (if applicable). * @property expirationYear The expiration year in string form (if applicable). * @property securityCode The security code for the card (if applicable). + * @property cardholderName The name on the card (if applicable). */ @Parcelize data class Card( + val cardholderName: String?, val number: String?, val expirationMonth: String?, val expirationYear: String?, diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillPartitionExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillPartitionExtensions.kt index cea625eb7d..48c1b9779f 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillPartitionExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillPartitionExtensions.kt @@ -34,6 +34,13 @@ val AutofillPartition.Card.securityCodeSaveValue: String? get() = this .extractNonNullTextValueOrNull { it is AutofillView.Card.SecurityCode } +/** + * The text value representation of the cardholder name from the [AutofillPartition.Card]. + */ +val AutofillPartition.Card.cardholderName: String? + get() = this + .extractNonNullTextValueOrNull { it is AutofillView.Card.CardholderName } + /** * The text value representation of the password from the [AutofillPartition.Login]. */ diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillRequestExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillRequestExtensions.kt index c36ff8e9b7..2018c353d8 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillRequestExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillRequestExtensions.kt @@ -11,6 +11,7 @@ fun AutofillRequest.Fillable.toAutofillSaveItem(): AutofillSaveItem = when (this.partition) { is AutofillPartition.Card -> { AutofillSaveItem.Card( + cardholderName = partition.cardholderName, number = partition.numberSaveValue, expirationMonth = partition.expirationMonthSaveValue, expirationYear = partition.expirationYearSaveValue, diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/AutofillSaveItemExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/AutofillSaveItemExtensions.kt index 472889cdf6..83ef336688 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/AutofillSaveItemExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/AutofillSaveItemExtensions.kt @@ -21,6 +21,7 @@ fun AutofillSaveItem.toDefaultAddTypeContent( common = VaultAddEditState.ViewState.Content.Common(), isIndividualVaultDisabled = isIndividualVaultDisabled, type = VaultAddEditState.ViewState.Content.ItemType.Card( + cardHolderName = this.cardholderName.orEmpty(), number = this.number.orEmpty(), expirationMonth = VaultCardExpirationMonth .entries diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillRequestExtensionsTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillRequestExtensionsTest.kt index ee508c3183..102ef87d94 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillRequestExtensionsTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/util/AutofillRequestExtensionsTest.kt @@ -31,11 +31,13 @@ class AutofillRequestExtensionsTest { every { expirationYearSaveValue } returns SAVE_VALUE_YEAR every { numberSaveValue } returns SAVE_VALUE_NUMBER every { securityCodeSaveValue } returns SAVE_VALUE_CODE + every { cardholderName } returns SAVE_VALUE_CARDHOLDER_NAME } val autofillRequest: AutofillRequest.Fillable = mockk { every { partition } returns autofillPartition } val expected = AutofillSaveItem.Card( + cardholderName = SAVE_VALUE_CARDHOLDER_NAME, number = SAVE_VALUE_NUMBER, expirationMonth = SAVE_VALUE_MONTH, expirationYear = SAVE_VALUE_YEAR, @@ -109,6 +111,7 @@ private const val SAVE_VALUE_CODE: String = "SAVE_VALUE_CODE" private const val SAVE_VALUE_MONTH: String = "SAVE_VALUE_MONTH" private const val SAVE_VALUE_NUMBER: String = "SAVE_VALUE_NUMBER" private const val SAVE_VALUE_YEAR: String = "SAVE_VALUE_YEAR" +private const val SAVE_VALUE_CARDHOLDER_NAME: String = "SAVE_VALUE_CARDHOLDER_NAME" // LOGIN DATA private const val SAVE_VALUE_PASSWORD: String = "SAVE_VALUE_PASSWORD" diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/AutofillSaveItemExtensionsTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/AutofillSaveItemExtensionsTest.kt index 789fc27587..bd75cc1d12 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/AutofillSaveItemExtensionsTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/vault/feature/addedit/util/AutofillSaveItemExtensionsTest.kt @@ -32,6 +32,7 @@ class AutofillSaveItemExtensionsTest { common = VaultAddEditState.ViewState.Content.Common(), isIndividualVaultDisabled = false, type = VaultAddEditState.ViewState.Content.ItemType.Card( + cardHolderName = "cardholderName", number = "number", expirationMonth = VaultCardExpirationMonth.JANUARY, expirationYear = "2024", @@ -39,6 +40,7 @@ class AutofillSaveItemExtensionsTest { ), ), AutofillSaveItem.Card( + cardholderName = "cardholderName", number = "number", expirationMonth = "1", expirationYear = "2024",