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 59e9151298..ab51554976 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 @@ -35,6 +35,7 @@ sealed class FlagKey { VerifiedSsoDomainEndpoint, CredentialExchangeProtocolImport, CredentialExchangeProtocolExport, + AppReviewPrompt, ) } } @@ -122,6 +123,15 @@ sealed class FlagKey { override val isRemotelyConfigured: Boolean = true } + /** + * Data object holding the feature flag key for the App Review Prompt feature. + */ + data object AppReviewPrompt : FlagKey() { + override val keyName: String = "app-review-prompt" + 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 b55c1f316a..8f26201ff6 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 @@ -31,6 +31,7 @@ fun FlagKey.ListItemContent( FlagKey.VerifiedSsoDomainEndpoint, FlagKey.CredentialExchangeProtocolImport, FlagKey.CredentialExchangeProtocolExport, + FlagKey.AppReviewPrompt, -> BooleanFlagItem( label = flagKey.getDisplayLabel(), key = flagKey as FlagKey, @@ -77,4 +78,5 @@ private fun FlagKey.getDisplayLabel(): String = when (this) { FlagKey.VerifiedSsoDomainEndpoint -> stringResource(R.string.verified_sso_domain_verified) FlagKey.CredentialExchangeProtocolImport -> stringResource(R.string.cxp_import) FlagKey.CredentialExchangeProtocolExport -> stringResource(R.string.cxp_export) + FlagKey.AppReviewPrompt -> stringResource(R.string.app_review_prompt) } diff --git a/app/src/main/res/values/strings_non_localized.xml b/app/src/main/res/values/strings_non_localized.xml index ab58f44e3e..04a6db84df 100644 --- a/app/src/main/res/values/strings_non_localized.xml +++ b/app/src/main/res/values/strings_non_localized.xml @@ -20,5 +20,6 @@ This will reset the onboarding status for the current user, if available. After clicking the button you will immediately be redirected to the onboarding flow. Onboarding flag must be enabled. Show Onboarding Carousel This will force the change to app state which will cause the first time carousel to show. The carousel will continue to show for any \"new\" account until a login is completed. May need to exit debug menu manually. + App Review Prompt 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 6be73357a9..07e325be6e 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 @@ -35,4 +35,9 @@ class FlagKeyTest { fun `SshKeyCipherItems default value should be false`() { assertFalse(FlagKey.SshKeyCipherItems.defaultValue) } + + @Test + fun `AppReviewPrompt default value should be false`() { + assertFalse(FlagKey.AppReviewPrompt.defaultValue) + } } 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 c340bc400f..07b34f1186 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 @@ -116,6 +116,7 @@ private val DEFAULT_MAP_VALUE: Map, Any> = mapOf( FlagKey.VerifiedSsoDomainEndpoint to true, FlagKey.CredentialExchangeProtocolImport to true, FlagKey.CredentialExchangeProtocolExport to true, + FlagKey.AppReviewPrompt to true, ) private val UPDATED_MAP_VALUE: Map, Any> = mapOf( @@ -128,6 +129,7 @@ private val UPDATED_MAP_VALUE: Map, Any> = mapOf( FlagKey.VerifiedSsoDomainEndpoint to false, FlagKey.CredentialExchangeProtocolImport to false, FlagKey.CredentialExchangeProtocolExport to false, + FlagKey.AppReviewPrompt to false, ) private val DEFAULT_STATE = DebugMenuState(