From d64457aa0f40320020b379a8ca1bb363d9097cf4 Mon Sep 17 00:00:00 2001 From: Ramsey Smith <142836716+ramsey-livefront@users.noreply.github.com> Date: Mon, 22 Apr 2024 14:20:34 -0600 Subject: [PATCH] BIT-2217: Long email addresses account switcher ellipses (#1297) --- .../account/BitwardenAccountSwitcher.kt | 40 ++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountSwitcher.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountSwitcher.kt index cc53ad41d7..235165250d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountSwitcher.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/account/BitwardenAccountSwitcher.kt @@ -27,7 +27,9 @@ import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text +import androidx.compose.material3.TopAppBarDefaults import androidx.compose.material3.TopAppBarScrollBehavior +import androidx.compose.material3.rememberTopAppBarState import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -38,7 +40,8 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.clearAndSetSemantics -import androidx.compose.ui.semantics.testTag +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.R import com.x8bit.bitwarden.ui.platform.base.util.lowercaseWithCurrentLocal @@ -56,6 +59,7 @@ import com.x8bit.bitwarden.ui.vault.feature.vault.util.iconTestTag 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 +import kotlinx.collections.immutable.toImmutableList /** * The maximum number of accounts before the "Add account" button will be hidden to prevent the user @@ -290,6 +294,8 @@ private fun AccountSummaryItem( Text( text = accountSummary.email, style = MaterialTheme.typography.bodyLarge, + maxLines = 1, + overflow = TextOverflow.Ellipsis, modifier = Modifier.testTag("AccountEmailLabel"), ) @@ -388,3 +394,35 @@ private fun AddAccountItem( ) } } + +@OptIn(ExperimentalMaterial3Api::class) +@Preview(showBackground = true) +@Composable +private fun BitwardenAccountSwitcher_preview() { + BitwardenAccountSwitcher( + isVisible = true, + accountSummaries = listOf( + AccountSummary( + userId = "123", + name = "Cool Guy", + email = "coolestguyeverthatlikestosurfandbeachvibes@gmail.com", + avatarColorHex = "#EEEEEE", + environmentLabel = "label", + isActive = true, + isLoggedIn = true, + isVaultUnlocked = true, + ), + ) + .toImmutableList(), + onSwitchAccountClick = {}, + onLockAccountClick = {}, + onLogoutAccountClick = {}, + onAddAccountClick = {}, + onDismissRequest = {}, + topAppBarScrollBehavior = + TopAppBarDefaults.exitUntilCollapsedScrollBehavior( + state = rememberTopAppBarState(), + canScroll = { false }, + ), + ) +}