diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt index 425142177b..2eb441356e 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/data/platform/manager/model/FlagKey.kt @@ -34,7 +34,6 @@ sealed class FlagKey { ChromeAutofill, MobileErrorReporting, RestrictCipherItemDeletion, - PreAuthSettings, UserManagedPrivilegedApps, RemoveCardPolicy, ) @@ -157,14 +156,6 @@ sealed class FlagKey { override val defaultValue: Boolean = false } - /** - * Data object holding the feature flag key to enable the settings menu before login. - */ - data object PreAuthSettings : FlagKey() { - override val keyName: String = "enable-pm-prelogin-settings" - override val defaultValue: Boolean = false - } - /** * Data object holding the feature flag key to enabled user-managed privileged apps. */ diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreen.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreen.kt index c44b538f33..f7a84a6937 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreen.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreen.kt @@ -319,17 +319,15 @@ private fun LandingScreenContent( .testTag("CreateAccountLabel"), ) } - if (state.showSettingsButton) { - Spacer(modifier = Modifier.height(height = 8.dp)) - BitwardenTextButton( - label = stringResource(id = R.string.app_settings), - onClick = onAppSettingsClick, - icon = rememberVectorPainter(id = BitwardenDrawable.ic_cog), - modifier = Modifier - .standardHorizontalMargin() - .fillMaxWidth(), - ) - } + Spacer(modifier = Modifier.height(height = 8.dp)) + BitwardenTextButton( + label = stringResource(id = R.string.app_settings), + onClick = onAppSettingsClick, + icon = rememberVectorPainter(id = BitwardenDrawable.ic_cog), + modifier = Modifier + .standardHorizontalMargin() + .fillMaxWidth(), + ) Spacer(modifier = Modifier.height(height = 12.dp)) Spacer(modifier = Modifier.navigationBarsPadding()) diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingViewModel.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingViewModel.kt index 3fadf12aea..a4e631243d 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingViewModel.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingViewModel.kt @@ -54,7 +54,6 @@ class LandingViewModel @Inject constructor( selectedEnvironmentLabel = environmentRepository.environment.label, dialog = null, accountSummaries = authRepository.userStateFlow.value?.toAccountSummaries().orEmpty(), - showSettingsButton = featureFlagManager.getFeatureFlag(key = FlagKey.PreAuthSettings), ), ) { @@ -108,11 +107,6 @@ class LandingViewModel @Inject constructor( .map { LandingAction.Internal.SnackbarDataReceived(it) } .onEach(::sendAction) .launchIn(viewModelScope) - featureFlagManager - .getFeatureFlagFlow(key = FlagKey.PreAuthSettings) - .map { LandingAction.Internal.PreAuthSettingFlagReceive(it) } - .onEach(::sendAction) - .launchIn(viewModelScope) } override fun handleAction(action: LandingAction) { @@ -142,10 +136,6 @@ class LandingViewModel @Inject constructor( handleUpdatedEnvironmentReceive(action) } - is LandingAction.Internal.PreAuthSettingFlagReceive -> { - handlePreAuthSettingFlagReceive(action) - } - is LandingAction.Internal.SnackbarDataReceived -> handleSnackbarDataReceived(action) } } @@ -271,12 +261,6 @@ class LandingViewModel @Inject constructor( } } - private fun handlePreAuthSettingFlagReceive( - action: LandingAction.Internal.PreAuthSettingFlagReceive, - ) { - mutableStateFlow.update { it.copy(showSettingsButton = action.isEnabled) } - } - private fun handleSnackbarDataReceived(action: LandingAction.Internal.SnackbarDataReceived) { sendEvent(LandingEvent.ShowSnackbar(action.data)) } @@ -307,7 +291,6 @@ data class LandingState( val selectedEnvironmentLabel: String, val dialog: DialogState?, val accountSummaries: List, - val showSettingsButton: Boolean, ) : Parcelable { /** * Determines whether the app bar should be visible based on the presence of account summaries. @@ -458,13 +441,6 @@ sealed class LandingAction { * Actions for internal use by the ViewModel. */ sealed class Internal : LandingAction() { - /** - * Indicates that there has been a change to the pre-auth settings feature flag. - */ - data class PreAuthSettingFlagReceive( - val isEnabled: Boolean, - ) : Internal() - /** * Indicates that snackbar data has been received. */ diff --git a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/debugmenu/components/FeatureFlagListItems.kt b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/debugmenu/components/FeatureFlagListItems.kt index 4e70c5eed8..75f60f3320 100644 --- a/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/debugmenu/components/FeatureFlagListItems.kt +++ b/app/src/main/kotlin/com/x8bit/bitwarden/ui/platform/feature/debugmenu/components/FeatureFlagListItems.kt @@ -39,7 +39,6 @@ fun FlagKey.ListItemContent( FlagKey.ChromeAutofill, FlagKey.MobileErrorReporting, FlagKey.RestrictCipherItemDeletion, - FlagKey.PreAuthSettings, FlagKey.UserManagedPrivilegedApps, FlagKey.RemoveCardPolicy, -> { @@ -100,9 +99,9 @@ private fun FlagKey.getDisplayLabel(): String = when (this) { FlagKey.ChromeAutofill -> stringResource(R.string.enable_chrome_autofill) FlagKey.MobileErrorReporting -> stringResource(R.string.enable_error_reporting_dialog) FlagKey.RestrictCipherItemDeletion -> stringResource(R.string.restrict_item_deletion) - FlagKey.PreAuthSettings -> stringResource(R.string.enable_pre_auth_settings) FlagKey.UserManagedPrivilegedApps -> { stringResource(R.string.user_trusted_privileged_app_management) } + FlagKey.RemoveCardPolicy -> stringResource(R.string.remove_card_policy) } diff --git a/app/src/main/res/values/strings_non_localized.xml b/app/src/main/res/values/strings_non_localized.xml index 7f9b4b92ae..3e3cb49ad7 100644 --- a/app/src/main/res/values/strings_non_localized.xml +++ b/app/src/main/res/values/strings_non_localized.xml @@ -25,7 +25,6 @@ Enable chrome autofill Enable error reporting dialog Restrict item deletion - Enabled pre-auth settings Generate crash Generate error report Error reports diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/FlagKeyTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/FlagKeyTest.kt index 5517be52c8..af2ab46aef 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/FlagKeyTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/data/platform/manager/FlagKeyTest.kt @@ -61,10 +61,6 @@ class FlagKeyTest { FlagKey.RestrictCipherItemDeletion.keyName, "pm-15493-restrict-item-deletion-to-can-manage-permission", ) - assertEquals( - FlagKey.PreAuthSettings.keyName, - "enable-pm-prelogin-settings", - ) assertEquals( FlagKey.UserManagedPrivilegedApps.keyName, "pm-18970-user-managed-privileged-apps", @@ -92,7 +88,6 @@ class FlagKeyTest { FlagKey.ChromeAutofill, FlagKey.MobileErrorReporting, FlagKey.RestrictCipherItemDeletion, - FlagKey.PreAuthSettings, FlagKey.UserManagedPrivilegedApps, FlagKey.RemoveCardPolicy, ).all { diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreenTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreenTest.kt index 9497eb37ca..427ab615e5 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreenTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingScreenTest.kt @@ -283,21 +283,8 @@ class LandingScreenTest : BitwardenComposeTest() { } } - @Test - fun `app settings button should be displayed according to state`() { - mutableStateFlow.update { it.copy(showSettingsButton = false) } - composeTestRule - .onNodeWithText(text = "App settings") - .assertDoesNotExist() - mutableStateFlow.update { it.copy(showSettingsButton = true) } - composeTestRule - .onNodeWithText(text = "App settings") - .assertExists() - } - @Test fun `on app settings click should send AppSettingsClick action`() { - mutableStateFlow.update { it.copy(showSettingsButton = true) } composeTestRule .onNodeWithText(text = "App settings") .performScrollTo() @@ -527,5 +514,4 @@ private val DEFAULT_STATE = LandingState( selectedEnvironmentLabel = Environment.Us.label, dialog = null, accountSummaries = emptyList(), - showSettingsButton = false, ) diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingViewModelTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingViewModelTest.kt index 1d4e0f24aa..a239bec8d2 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingViewModelTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/auth/feature/landing/LandingViewModelTest.kt @@ -51,7 +51,6 @@ class LandingViewModelTest : BaseViewModelTest() { } private val featureFlagManager: FeatureFlagManager = mockk(relaxed = true) { every { getFeatureFlag(FlagKey.EmailVerification) } returns false - every { getFeatureFlag(FlagKey.PreAuthSettings) } returns false } @Test @@ -231,20 +230,6 @@ class LandingViewModelTest : BaseViewModelTest() { } } - @Test - fun `PreAuthSettingFlagReceive should update the state accordingly`() = runTest { - val viewModel = createViewModel() - viewModel.stateFlow.test { - assertEquals(DEFAULT_STATE, awaitItem()) - - viewModel.trySendAction(LandingAction.Internal.PreAuthSettingFlagReceive(true)) - assertEquals(DEFAULT_STATE.copy(showSettingsButton = true), awaitItem()) - - viewModel.trySendAction(LandingAction.Internal.PreAuthSettingFlagReceive(false)) - assertEquals(DEFAULT_STATE.copy(showSettingsButton = false), awaitItem()) - } - } - @Suppress("MaxLineLength") @Test fun `ContinueButtonClick with an email input matching an existing account on same environment that is logged in should show the account already added dialog`() { @@ -654,5 +639,4 @@ private val DEFAULT_STATE = LandingState( selectedEnvironmentLabel = Environment.Us.label, dialog = null, accountSummaries = emptyList(), - showSettingsButton = false, ) diff --git a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuViewModelTest.kt b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuViewModelTest.kt index 291a8c2448..a8d26f2eac 100644 --- a/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuViewModelTest.kt +++ b/app/src/test/kotlin/com/x8bit/bitwarden/ui/platform/feature/debugmenu/DebugMenuViewModelTest.kt @@ -157,7 +157,6 @@ private val DEFAULT_MAP_VALUE: ImmutableMap, Any> = persistentMapOf FlagKey.ChromeAutofill to true, FlagKey.MobileErrorReporting to true, FlagKey.RestrictCipherItemDeletion to true, - FlagKey.PreAuthSettings to true, FlagKey.UserManagedPrivilegedApps to true, FlagKey.RemoveCardPolicy to true, ) @@ -176,7 +175,6 @@ private val UPDATED_MAP_VALUE: ImmutableMap, Any> = persistentMapOf FlagKey.ChromeAutofill to false, FlagKey.MobileErrorReporting to false, FlagKey.RestrictCipherItemDeletion to false, - FlagKey.PreAuthSettings to false, FlagKey.UserManagedPrivilegedApps to false, FlagKey.RemoveCardPolicy to false, )