From 2787edbf458bec26828fcced344a3d318f02e416 Mon Sep 17 00:00:00 2001 From: Patrick Honkonen <1883101+SaintPatrck@users.noreply.github.com> Date: Wed, 22 Jan 2025 09:41:57 -0500 Subject: [PATCH] [PM-17405] Add mutual TLS feature flag (#4606) --- .../bitwarden/data/platform/manager/model/FlagKey.kt | 10 ++++++++++ .../debugmenu/components/FeatureFlagListItems.kt | 2 ++ app/src/main/res/values/strings.xml | 1 + .../feature/debugmenu/DebugMenuViewModelTest.kt | 2 ++ 4 files changed, 15 insertions(+) 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 0315863d95..1ca263ac46 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 @@ -39,6 +39,7 @@ sealed class FlagKey { NewDevicePermanentDismiss, NewDeviceTemporaryDismiss, IgnoreEnvironmentCheck, + MutualTls, ) } } @@ -171,6 +172,15 @@ sealed class FlagKey { override val isRemotelyConfigured: Boolean = false } + /** + * Data object holding the feature flag key for the Mutual TLS feature. + */ + data object MutualTls : FlagKey() { + override val keyName: String = "mutual-tls" + override val defaultValue: Boolean = false + override val isRemotelyConfigured: Boolean = false + } + //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 1ebafe78e6..766c3643af 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 @@ -38,6 +38,7 @@ fun FlagKey.ListItemContent( FlagKey.NewDevicePermanentDismiss, FlagKey.NewDeviceTemporaryDismiss, FlagKey.IgnoreEnvironmentCheck, + FlagKey.MutualTls, -> BooleanFlagItem( label = flagKey.getDisplayLabel(), key = flagKey as FlagKey, @@ -90,4 +91,5 @@ private fun FlagKey.getDisplayLabel(): String = when (this) { FlagKey.NewDevicePermanentDismiss -> stringResource(R.string.new_device_permanent_dismiss) FlagKey.NewDeviceTemporaryDismiss -> stringResource(R.string.new_device_temporary_dismiss) FlagKey.IgnoreEnvironmentCheck -> stringResource(R.string.ignore_environment_check) + FlagKey.MutualTls -> stringResource(R.string.mutual_tls) } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 671934d024..5a711fb302 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1120,4 +1120,5 @@ Do you want to switch to this account? You’ll only need to set up Authenticator Key for logins that require two-factor authentication with a code. The key will continuously generate six-digit codes you can use to log in. 3 of 3 You must add a web address to use autofill to access this account. + Mutual TLS 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 691d453932..8e3fe1c9d5 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 @@ -120,6 +120,7 @@ private val DEFAULT_MAP_VALUE: Map, Any> = mapOf( FlagKey.NewDeviceTemporaryDismiss to true, FlagKey.NewDevicePermanentDismiss to true, FlagKey.IgnoreEnvironmentCheck to true, + FlagKey.MutualTls to true, ) private val UPDATED_MAP_VALUE: Map, Any> = mapOf( @@ -136,6 +137,7 @@ private val UPDATED_MAP_VALUE: Map, Any> = mapOf( FlagKey.NewDeviceTemporaryDismiss to false, FlagKey.NewDevicePermanentDismiss to false, FlagKey.IgnoreEnvironmentCheck to false, + FlagKey.MutualTls to false, ) private val DEFAULT_STATE = DebugMenuState(