diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt index 3fe3091341..29d5a490a0 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreen.kt @@ -66,7 +66,7 @@ private const val MINUTES_PER_HOUR = 60 /** * Displays the account security screen. */ -@Suppress("LongMethod") +@Suppress("LongMethod", "LongParameterList") @OptIn(ExperimentalMaterial3Api::class) @Composable fun AccountSecurityScreen( @@ -175,13 +175,15 @@ fun AccountSecurityScreen( .fillMaxWidth() .padding(horizontal = 16.dp), ) - BitwardenTextRow( - text = stringResource(id = R.string.pending_log_in_requests), - onClick = remember(viewModel) { - { viewModel.trySendAction(AccountSecurityAction.PendingLoginRequestsClick) } - }, - modifier = Modifier.fillMaxWidth(), - ) + if (state.isApproveLoginRequestsEnabled) { + BitwardenTextRow( + text = stringResource(id = R.string.pending_log_in_requests), + onClick = remember(viewModel) { + { viewModel.trySendAction(AccountSecurityAction.PendingLoginRequestsClick) } + }, + modifier = Modifier.fillMaxWidth(), + ) + } Spacer(Modifier.height(16.dp)) BitwardenListHeaderText( diff --git a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt index ab82d9aa8a..c8c27b768d 100644 --- a/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt +++ b/app/src/test/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/AccountSecurityScreenTest.kt @@ -131,13 +131,21 @@ class AccountSecurityScreenTest : BaseComposeTest() { } @Test - fun `on approve login requests toggle off should send Disabled action`() { + fun `on approve login requests toggle off should send Disabled action and hide requests row`() { + composeTestRule + .onNodeWithText("Pending login requests") + .assertDoesNotExist() + mutableStateFlow.update { it.copy(isApproveLoginRequestsEnabled = true) } composeTestRule .onNodeWithText("Use this device to approve login requests made from other devices") .performScrollTo() .performClick() + composeTestRule + .onNodeWithText("Pending login requests") + .performScrollTo() + .assertIsDisplayed() verify { viewModel.trySendAction( @@ -300,6 +308,7 @@ class AccountSecurityScreenTest : BaseComposeTest() { @Test fun `on pending login requests click should send PendingLoginRequestsClick`() { + mutableStateFlow.update { it.copy(isApproveLoginRequestsEnabled = true) } composeTestRule .onNodeWithText("Pending login requests") .performScrollTo()