diff --git a/app/src/main/java/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt b/app/src/main/java/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt index e7189f7a6b..0cd19fe346 100644 --- a/app/src/main/java/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt +++ b/app/src/main/java/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt @@ -42,6 +42,7 @@ sealed class FlagKey { MutualTls, SingleTapPasskeyCreation, SingleTapPasskeyAuthentication, + AnonAddySelfHostAlias, ) } } @@ -201,6 +202,16 @@ sealed class FlagKey { override val isRemotelyConfigured: Boolean = true } + /** + * Data object holding the feature flag key to enable AnonAddy (addy.io) self host alias + * generation. + */ + data object AnonAddySelfHostAlias : FlagKey() { + override val keyName: String = "anon-addy-self-host-alias" + override val defaultValue: Boolean = false + override val isRemotelyConfigured: Boolean = true + } + //region Dummy keys for testing /** * Data object holding the key for a [Boolean] flag to be used in tests. diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/components/FeatureFlagListItems.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/components/FeatureFlagListItems.kt index 8c0b067a39..84045b4cb5 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/components/FeatureFlagListItems.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/components/FeatureFlagListItems.kt @@ -41,6 +41,7 @@ fun FlagKey.ListItemContent( FlagKey.MutualTls, FlagKey.SingleTapPasskeyCreation, FlagKey.SingleTapPasskeyAuthentication, + FlagKey.AnonAddySelfHostAlias, -> BooleanFlagItem( label = flagKey.getDisplayLabel(), key = flagKey as FlagKey, @@ -97,4 +98,5 @@ private fun FlagKey.getDisplayLabel(): String = when (this) { FlagKey.SingleTapPasskeyCreation -> stringResource(R.string.single_tap_passkey_creation) FlagKey.SingleTapPasskeyAuthentication -> stringResource(R.string.single_tap_passkey_authentication) + FlagKey.AnonAddySelfHostAlias -> stringResource(R.string.anon_addy_self_hosted_aliases) } diff --git a/app/src/main/res/values/strings_non_localized.xml b/app/src/main/res/values/strings_non_localized.xml index c2241ac675..055d5bdce7 100644 --- a/app/src/main/res/values/strings_non_localized.xml +++ b/app/src/main/res/values/strings_non_localized.xml @@ -26,5 +26,6 @@ New device notice temporary dismiss"> Ignore environment check"> Reset all coach mark tours + AnonAddy self-hosted aliases diff --git a/app/src/test/java/com/x8bit/bitwarden/data/platform/manager/FlagKeyTest.kt b/app/src/test/java/com/x8bit/bitwarden/data/platform/manager/FlagKeyTest.kt index 42be456fd1..47cde4085a 100644 --- a/app/src/test/java/com/x8bit/bitwarden/data/platform/manager/FlagKeyTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/data/platform/manager/FlagKeyTest.kt @@ -77,6 +77,10 @@ class FlagKeyTest { FlagKey.MutualTls.keyName, "mutual-tls", ) + assertEquals( + FlagKey.AnonAddySelfHostAlias.keyName, + "anon-addy-self-host-alias", + ) } @Test @@ -97,6 +101,7 @@ class FlagKeyTest { FlagKey.NewDevicePermanentDismiss, FlagKey.SingleTapPasskeyCreation, FlagKey.SingleTapPasskeyAuthentication, + FlagKey.AnonAddySelfHostAlias, ).all { !it.defaultValue }, @@ -125,6 +130,7 @@ class FlagKeyTest { FlagKey.SingleTapPasskeyCreation, FlagKey.SingleTapPasskeyAuthentication, FlagKey.MutualTls, + FlagKey.AnonAddySelfHostAlias, ).all { it.isRemotelyConfigured }, diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuViewModelTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuViewModelTest.kt index ce0e2481c5..23e905345a 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuViewModelTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuViewModelTest.kt @@ -134,6 +134,7 @@ private val DEFAULT_MAP_VALUE: Map, Any> = mapOf( FlagKey.MutualTls to true, FlagKey.SingleTapPasskeyCreation to true, FlagKey.SingleTapPasskeyAuthentication to true, + FlagKey.AnonAddySelfHostAlias to true, ) private val UPDATED_MAP_VALUE: Map, Any> = mapOf( @@ -153,6 +154,7 @@ private val UPDATED_MAP_VALUE: Map, Any> = mapOf( FlagKey.MutualTls to false, FlagKey.SingleTapPasskeyCreation to false, FlagKey.SingleTapPasskeyAuthentication to false, + FlagKey.AnonAddySelfHostAlias to false, ) private val DEFAULT_STATE = DebugMenuState(