Skip to content

Commit dbb006d

Browse files
authored
[PM-15064] Add feature flags for CXP import and export (#4337)
1 parent 5d41970 commit dbb006d

File tree

4 files changed

+35
-0
lines changed

4 files changed

+35
-0
lines changed

app/src/main/java/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,8 @@ sealed class FlagKey<out T : Any> {
3333
ImportLoginsFlow,
3434
SshKeyCipherItems,
3535
VerifiedSsoDomainEndpoint,
36+
CredentialExchangeProtocolImport,
37+
CredentialExchangeProtocolExport,
3638
)
3739
}
3840
}
@@ -90,6 +92,7 @@ sealed class FlagKey<out T : Any> {
9092
override val defaultValue: Boolean = false
9193
override val isRemotelyConfigured: Boolean = true
9294
}
95+
9396
/**
9497
* Data object holding the feature flag key for the new verified SSO domain endpoint feature.
9598
*/
@@ -99,6 +102,27 @@ sealed class FlagKey<out T : Any> {
99102
override val isRemotelyConfigured: Boolean = true
100103
}
101104

105+
/**
106+
* Data object holding hte feature flag key for the Credential Exchange Protocol (CXP) import
107+
* feature.
108+
*/
109+
data object CredentialExchangeProtocolImport : FlagKey<Boolean>() {
110+
override val keyName: String = "cxp-import-mobile"
111+
override val defaultValue: Boolean = false
112+
override val isRemotelyConfigured: Boolean = true
113+
}
114+
115+
/**
116+
* Data object holding the feature flag key for the Credential Exchange Protocol (CXP) export
117+
* feature.
118+
*/
119+
data object CredentialExchangeProtocolExport : FlagKey<Boolean>() {
120+
override val keyName: String = "cxp-export-mobile"
121+
override val defaultValue: Boolean = false
122+
override val isRemotelyConfigured: Boolean = true
123+
}
124+
125+
//region Dummy keys for testing
102126
/**
103127
* Data object holding the key for a [Boolean] flag to be used in tests.
104128
*/
@@ -126,4 +150,5 @@ sealed class FlagKey<out T : Any> {
126150
override val defaultValue: String = "defaultValue"
127151
override val isRemotelyConfigured: Boolean = true
128152
}
153+
//endregion Dummy keys for testing
129154
}

app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/components/FeatureFlagListItems.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,8 @@ fun <T : Any> FlagKey<T>.ListItemContent(
2929
FlagKey.ImportLoginsFlow,
3030
FlagKey.SshKeyCipherItems,
3131
FlagKey.VerifiedSsoDomainEndpoint,
32+
FlagKey.CredentialExchangeProtocolImport,
33+
FlagKey.CredentialExchangeProtocolExport,
3234
-> BooleanFlagItem(
3335
label = flagKey.getDisplayLabel(),
3436
key = flagKey as FlagKey<Boolean>,
@@ -73,4 +75,6 @@ private fun <T : Any> FlagKey<T>.getDisplayLabel(): String = when (this) {
7375
FlagKey.ImportLoginsFlow -> stringResource(R.string.import_logins_flow)
7476
FlagKey.SshKeyCipherItems -> stringResource(R.string.ssh_key_cipher_item_types)
7577
FlagKey.VerifiedSsoDomainEndpoint -> stringResource(R.string.verified_sso_domain_verified)
78+
FlagKey.CredentialExchangeProtocolImport -> stringResource(R.string.cxp_import)
79+
FlagKey.CredentialExchangeProtocolExport -> stringResource(R.string.cxp_export)
7680
}

app/src/main/res/values/strings.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1097,4 +1097,6 @@ Do you want to switch to this account?</string>
10971097
<string name="copy_address">Copy address</string>
10981098
<string name="biometrics_no_longer_supported_title">Biometrics are no longer supported on this device</string>
10991099
<string name="biometrics_no_longer_supported">You’ve been logged out because your device’s biometrics don’t meet the latest security requirements. To update settings, log in once again or contact your administrator for access.</string>
1100+
<string name="cxp_import">CXP Import</string>
1101+
<string name="cxp_export">CXP Export</string>
11001102
</resources>

app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuViewModelTest.kt

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,8 @@ private val DEFAULT_MAP_VALUE: Map<FlagKey<Any>, Any> = mapOf(
114114
FlagKey.ImportLoginsFlow to true,
115115
FlagKey.SshKeyCipherItems to true,
116116
FlagKey.VerifiedSsoDomainEndpoint to true,
117+
FlagKey.CredentialExchangeProtocolImport to true,
118+
FlagKey.CredentialExchangeProtocolExport to true,
117119
)
118120

119121
private val UPDATED_MAP_VALUE: Map<FlagKey<Any>, Any> = mapOf(
@@ -124,6 +126,8 @@ private val UPDATED_MAP_VALUE: Map<FlagKey<Any>, Any> = mapOf(
124126
FlagKey.ImportLoginsFlow to false,
125127
FlagKey.SshKeyCipherItems to false,
126128
FlagKey.VerifiedSsoDomainEndpoint to false,
129+
FlagKey.CredentialExchangeProtocolImport to false,
130+
FlagKey.CredentialExchangeProtocolExport to false,
127131
)
128132

129133
private val DEFAULT_STATE = DebugMenuState(

0 commit comments

Comments
 (0)