[PM-14936] Add AnonAddySelfHostAlias feature flag (#4711)

This commit is contained in:
Patrick Honkonen
2025-02-11 18:06:45 -05:00
committed by GitHub
parent 2c63c1ab94
commit 60a6b2a545
5 changed files with 22 additions and 0 deletions

View File

@@ -42,6 +42,7 @@ sealed class FlagKey<out T : Any> {
MutualTls,
SingleTapPasskeyCreation,
SingleTapPasskeyAuthentication,
AnonAddySelfHostAlias,
)
}
}
@@ -201,6 +202,16 @@ sealed class FlagKey<out T : Any> {
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<Boolean>() {
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.

View File

@@ -41,6 +41,7 @@ fun <T : Any> FlagKey<T>.ListItemContent(
FlagKey.MutualTls,
FlagKey.SingleTapPasskeyCreation,
FlagKey.SingleTapPasskeyAuthentication,
FlagKey.AnonAddySelfHostAlias,
-> BooleanFlagItem(
label = flagKey.getDisplayLabel(),
key = flagKey as FlagKey<Boolean>,
@@ -97,4 +98,5 @@ private fun <T : Any> FlagKey<T>.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)
}

View File

@@ -26,5 +26,6 @@
<string name="new_device_temporary_dismiss">New device notice temporary dismiss</string>">
<string name="ignore_environment_check">Ignore environment check</string>">
<string name="reset_coach_mark_tour_status">Reset all coach mark tours</string>
<string name="anon_addy_self_hosted_aliases">AnonAddy self-hosted aliases</string>
<!-- /Debug Menu -->
</resources>

View File

@@ -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
},

View File

@@ -134,6 +134,7 @@ private val DEFAULT_MAP_VALUE: Map<FlagKey<Any>, Any> = mapOf(
FlagKey.MutualTls to true,
FlagKey.SingleTapPasskeyCreation to true,
FlagKey.SingleTapPasskeyAuthentication to true,
FlagKey.AnonAddySelfHostAlias to true,
)
private val UPDATED_MAP_VALUE: Map<FlagKey<Any>, Any> = mapOf(
@@ -153,6 +154,7 @@ private val UPDATED_MAP_VALUE: Map<FlagKey<Any>, Any> = mapOf(
FlagKey.MutualTls to false,
FlagKey.SingleTapPasskeyCreation to false,
FlagKey.SingleTapPasskeyAuthentication to false,
FlagKey.AnonAddySelfHostAlias to false,
)
private val DEFAULT_STATE = DebugMenuState(