From 276e360b44abcff75a7308e89bd1543037f783f9 Mon Sep 17 00:00:00 2001 From: Andre Rosado Date: Mon, 14 Sep 2026 15:28:42 +0100 Subject: [PATCH] Setting isAddressExtendedField check before isPostalAddressFullField so that more specific term is properly validated --- .../data/autofill/util/ViewNodeExtensions.kt | 4 +++- .../autofill/util/ViewNodeExtensionsTest.kt | 17 +++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/ViewNodeExtensions.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/ViewNodeExtensions.kt index b5677c62a2..abba537d1e 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/ViewNodeExtensions.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/autofill/util/ViewNodeExtensions.kt @@ -187,8 +187,10 @@ private fun AssistStructure.ViewNode.supportedAutofillHint( this.isPersonNameGivenField -> AutofillHint.Identity.PERSON_NAME_GIVEN this.isPersonNameMiddleField -> AutofillHint.Identity.PERSON_NAME_MIDDLE this.isPersonNameFamilyField -> AutofillHint.Identity.PERSON_NAME_FAMILY - this.isPostalAddressFullField -> AutofillHint.Identity.POSTAL_ADDRESS_FULL + // Must be checked before isPostalAddressFullField: a line-2 name like "billing_address_2" + // also substring-matches the postal-full terms, so the more specific check has to win. this.isAddressExtendedField -> AutofillHint.Identity.ADDRESS_EXTENDED + this.isPostalAddressFullField -> AutofillHint.Identity.POSTAL_ADDRESS_FULL this.isAddressStreetField -> AutofillHint.Identity.ADDRESS_STREET this.isAddressLocalityField -> AutofillHint.Identity.ADDRESS_LOCALITY this.isAddressRegionField -> AutofillHint.Identity.ADDRESS_REGION diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/util/ViewNodeExtensionsTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/util/ViewNodeExtensionsTest.kt index 88e2146f21..2cee8fa725 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/util/ViewNodeExtensionsTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/data/autofill/util/ViewNodeExtensionsTest.kt @@ -1667,6 +1667,23 @@ class ViewNodeExtensionsTest { ) } + @Suppress("MaxLineLength") + @Test + fun `toAutofillView should return AutofillView Identity AddressExtended when idEntry is billing_address_2`() { + setupUnsupportedInputFieldViewNode() + every { viewNode.idEntry } returns "billing_address_2" + + val resolvedView = viewNode.toAutofillView( + parentWebsite = null, + isIdentityAutofillEnabled = true, + ) + + assertEquals( + AutofillView.Identity.AddressExtended(data = autofillViewData), + resolvedView, + ) + } + @Suppress("MaxLineLength") @Test fun `toAutofillView should return AutofillView Identity AddressLocality when autofillHints match`() {