From 577e3c04e3bbb8db5455932e241d2699ec4aeaa4 Mon Sep 17 00:00:00 2001 From: David Perez Date: Thu, 8 Jan 2026 14:55:04 -0600 Subject: [PATCH] Add the Archive items feature flag (#6337) --- .../com/bitwarden/core/data/manager/model/FlagKey.kt | 9 +++++++++ .../com/bitwarden/core/data/manager/model/FlagKeyTest.kt | 5 +++++ .../ui/platform/components/debug/FeatureFlagListItems.kt | 3 +++ ui/src/main/res/values/strings_non_localized.xml | 1 + 4 files changed, 18 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 31e9a4a86b..861f81f3cb 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 @@ -36,6 +36,7 @@ sealed class FlagKey { CipherKeyEncryption, NoLogoutOnKdfChange, MigrateMyVaultToMyItems, + ArchiveItems, ) } } @@ -98,6 +99,14 @@ sealed class FlagKey { override val defaultValue: Boolean = false } + /** + * Data object holding the feature flag key for the Archive Items feature. + */ + data object ArchiveItems : FlagKey() { + override val keyName: String = "pm-19148-innovation-archive" + 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 cc42ceb602..a7714258a1 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 @@ -32,6 +32,10 @@ class FlagKeyTest { FlagKey.MigrateMyVaultToMyItems.keyName, "pm-20558-migrate-myvault-to-myitems", ) + assertEquals( + FlagKey.ArchiveItems.keyName, + "pm-19148-innovation-archive", + ) } @Test @@ -44,6 +48,7 @@ class FlagKeyTest { FlagKey.BitwardenAuthenticationEnabled, FlagKey.ForceUpdateKdfSettings, FlagKey.MigrateMyVaultToMyItems, + FlagKey.ArchiveItems, ).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 f21d983315..664f93759c 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 @@ -30,6 +30,7 @@ fun FlagKey.ListItemContent( FlagKey.ForceUpdateKdfSettings, FlagKey.NoLogoutOnKdfChange, FlagKey.MigrateMyVaultToMyItems, + FlagKey.ArchiveItems, -> { @Suppress("UNCHECKED_CAST") BooleanFlagItem( @@ -79,5 +80,7 @@ private fun FlagKey.getDisplayLabel(): String = when (this) { FlagKey.BitwardenAuthenticationEnabled -> { stringResource(BitwardenString.bitwarden_authentication_enabled) } + FlagKey.MigrateMyVaultToMyItems -> stringResource(BitwardenString.migrate_my_vault_to_my_items) + FlagKey.ArchiveItems -> stringResource(BitwardenString.archive_items) } diff --git a/ui/src/main/res/values/strings_non_localized.xml b/ui/src/main/res/values/strings_non_localized.xml index 8e10925d87..ecea985678 100644 --- a/ui/src/main/res/values/strings_non_localized.xml +++ b/ui/src/main/res/values/strings_non_localized.xml @@ -39,6 +39,7 @@ Force update KDF settings Avoid logout on KDF change Migrate My Vault to My Items + Archive Items