From dc64c0081dd1665c06731fa5f13b3a35cd7dc4b8 Mon Sep 17 00:00:00 2001 From: aj-rosado <109146700+aj-rosado@users.noreply.github.com> Date: Thu, 30 Jul 2026 11:59:20 +0100 Subject: [PATCH] [PM-41103] feat: Add identity autofill feature flag (#7222) --- .../com/bitwarden/core/data/manager/model/FlagKey.kt | 10 ++++++++++ .../bitwarden/core/data/manager/model/FlagKeyTest.kt | 5 +++++ .../platform/components/debug/FeatureFlagListItems.kt | 3 +++ ui/src/main/res/values/strings_non_localized.xml | 1 + 4 files changed, 19 insertions(+) diff --git a/core/src/main/kotlin/com/bitwarden/core/data/manager/model/FlagKey.kt b/core/src/main/kotlin/com/bitwarden/core/data/manager/model/FlagKey.kt index 6864c0bc38..c863c26ef8 100644 --- a/core/src/main/kotlin/com/bitwarden/core/data/manager/model/FlagKey.kt +++ b/core/src/main/kotlin/com/bitwarden/core/data/manager/model/FlagKey.kt @@ -48,6 +48,7 @@ sealed class FlagKey { FedRamp, SendControls, SendControlsExistingSends, + IdentityAutofill, ) } } @@ -208,6 +209,15 @@ sealed class FlagKey { override val defaultValue: Boolean = false } + /** + * Data object holding the feature flag key for gating identity autofill (offering saved + * Identity items as autofill suggestions). + */ + data object IdentityAutofill : FlagKey() { + override val keyName: String = "pm-38138-mobile-identity-autofill" + override val defaultValue: Boolean = false + } + //region Dummy keys for testing /** * Data object holding the key for a [Boolean] flag to be used in tests. diff --git a/core/src/test/kotlin/com/bitwarden/core/data/manager/model/FlagKeyTest.kt b/core/src/test/kotlin/com/bitwarden/core/data/manager/model/FlagKeyTest.kt index 05c7db9e8a..45a8cdfc79 100644 --- a/core/src/test/kotlin/com/bitwarden/core/data/manager/model/FlagKeyTest.kt +++ b/core/src/test/kotlin/com/bitwarden/core/data/manager/model/FlagKeyTest.kt @@ -72,6 +72,10 @@ class FlagKeyTest { FlagKey.SendControlsExistingSends.keyName, "pm-31885-send-controls-existing-sends", ) + assertEquals( + FlagKey.IdentityAutofill.keyName, + "pm-38138-mobile-identity-autofill", + ) } @Test @@ -94,6 +98,7 @@ class FlagKeyTest { FlagKey.FedRamp, FlagKey.SendControls, FlagKey.SendControlsExistingSends, + FlagKey.IdentityAutofill, ).all { !it.defaultValue }, diff --git a/ui/src/main/kotlin/com/bitwarden/ui/platform/components/debug/FeatureFlagListItems.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/components/debug/FeatureFlagListItems.kt index 1d2d1d1233..d777703ee8 100644 --- a/ui/src/main/kotlin/com/bitwarden/ui/platform/components/debug/FeatureFlagListItems.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/components/debug/FeatureFlagListItems.kt @@ -42,6 +42,7 @@ fun FlagKey.ListItemContent( FlagKey.FedRamp, FlagKey.SendControls, FlagKey.SendControlsExistingSends, + FlagKey.IdentityAutofill, -> { @Suppress("UNCHECKED_CAST") BooleanFlagItem( @@ -110,4 +111,6 @@ private fun FlagKey.getDisplayLabel(): String = when (this) { FlagKey.SendControlsExistingSends -> { stringResource(BitwardenString.send_controls_existing_sends) } + + FlagKey.IdentityAutofill -> stringResource(BitwardenString.identity_autofill) } diff --git a/ui/src/main/res/values/strings_non_localized.xml b/ui/src/main/res/values/strings_non_localized.xml index 40cf0ba0f5..ca661242c9 100644 --- a/ui/src/main/res/values/strings_non_localized.xml +++ b/ui/src/main/res/values/strings_non_localized.xml @@ -59,6 +59,7 @@ FedRAMP Send Controls Send Controls - Existing Sends + Identity Autofill