From d3a813b6470f79828505fb0650a9ead59d474761 Mon Sep 17 00:00:00 2001 From: Brian Yencho Date: Mon, 4 Dec 2023 10:26:28 -0600 Subject: [PATCH] BIT-1151: Enforce maximum account limit in account switcher (#310) --- .../components/BitwardenAccountSwitcher.kt | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenAccountSwitcher.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenAccountSwitcher.kt index 26266336e..35e95c95b 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenAccountSwitcher.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/BitwardenAccountSwitcher.kt @@ -44,6 +44,12 @@ import com.x8bit.bitwarden.ui.vault.feature.vault.util.initials import com.x8bit.bitwarden.ui.vault.feature.vault.util.supportingTextResOrNull import kotlinx.collections.immutable.ImmutableList +/** + * The maximum number of accounts before the "Add account" button will be hidden to prevent the user + * from adding any more. + */ +private const val MAXIMUM_ACCOUNT_LIMIT = 5 + /** * An account switcher that will slide down inside whatever parent is it placed in and add a * a scrim via a [BitwardenAnimatedScrim] to all content below it (but not above it). Additional @@ -148,13 +154,15 @@ private fun AnimatedAccountSwitcher( color = MaterialTheme.colorScheme.outlineVariant, ) } - item { - AddAccountItem( - onClick = onAddAccountClick, - modifier = Modifier - .fillMaxWidth() - .padding(horizontal = 16.dp), - ) + if (accountSummaries.size < MAXIMUM_ACCOUNT_LIMIT) { + item { + AddAccountItem( + onClick = onAddAccountClick, + modifier = Modifier + .fillMaxWidth() + .padding(horizontal = 16.dp), + ) + } } } }