Chore: Ensure UI it using common components and themeing (#7052)

This commit is contained in:
David Perez
2026-06-12 09:07:58 -05:00
committed by GitHub
parent 2355e89248
commit 453ade7cca
6 changed files with 22 additions and 53 deletions

View File

@@ -12,9 +12,7 @@ import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
import androidx.compose.material3.rememberTopAppBarState
import androidx.compose.runtime.Composable
@@ -28,6 +26,8 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.platform.LocalResources
import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.withStyle
import androidx.compose.ui.unit.dp
import androidx.core.net.toUri
import androidx.hilt.lifecycle.viewmodel.compose.hiltViewModel
@@ -37,7 +37,6 @@ import com.bitwarden.ui.platform.base.util.standardHorizontalMargin
import com.bitwarden.ui.platform.components.account.dialog.BitwardenLogoutConfirmationDialog
import com.bitwarden.ui.platform.components.appbar.BitwardenTopAppBar
import com.bitwarden.ui.platform.components.badge.NotificationBadge
import com.bitwarden.ui.platform.components.button.BitwardenTextButton
import com.bitwarden.ui.platform.components.card.BitwardenActionCard
import com.bitwarden.ui.platform.components.card.actionCardExitAnimation
import com.bitwarden.ui.platform.components.dialog.BitwardenBasicDialog
@@ -635,50 +634,23 @@ private fun FingerPrintPhraseDialog(
onDismissRequest: () -> Unit,
onLearnMore: () -> Unit,
) {
AlertDialog(
onDismissRequest = onDismissRequest,
dismissButton = {
BitwardenTextButton(
label = stringResource(id = BitwardenString.close),
onClick = onDismissRequest,
)
},
confirmButton = {
BitwardenTextButton(
label = stringResource(id = BitwardenString.learn_more),
isExternalLink = true,
onClick = onLearnMore,
)
},
title = {
Text(
text = stringResource(id = BitwardenString.fingerprint_phrase),
color = BitwardenTheme.colorScheme.text.primary,
style = BitwardenTheme.typography.headlineSmall,
modifier = Modifier.fillMaxWidth(),
)
},
text = {
Column {
Text(
text = "${stringResource(id = BitwardenString.your_accounts_fingerprint)}:",
color = BitwardenTheme.colorScheme.text.primary,
style = BitwardenTheme.typography.bodyMedium,
modifier = Modifier.fillMaxWidth(),
)
Spacer(modifier = Modifier.height(24.dp))
Text(
text = fingerprintPhrase(),
color = BitwardenTheme.colorScheme.text.codePink,
style = BitwardenTheme.typography.sensitiveInfoSmall,
modifier = Modifier.fillMaxWidth(),
)
BitwardenTwoButtonDialog(
title = stringResource(id = BitwardenString.fingerprint_phrase),
message = buildAnnotatedString {
append("${stringResource(id = BitwardenString.your_accounts_fingerprint)}:\n\n")
withStyle(
style = BitwardenTheme.typography.sensitiveInfoSmall
.toSpanStyle()
.copy(color = BitwardenTheme.colorScheme.text.codePink),
) {
append(fingerprintPhrase())
}
},
containerColor = BitwardenTheme.colorScheme.background.primary,
iconContentColor = BitwardenTheme.colorScheme.icon.secondary,
titleContentColor = BitwardenTheme.colorScheme.text.primary,
textContentColor = BitwardenTheme.colorScheme.text.primary,
confirmButtonText = stringResource(id = BitwardenString.learn_more),
dismissButtonText = stringResource(id = BitwardenString.close),
onConfirmClick = onLearnMore,
onDismissClick = onDismissRequest,
onDismissRequest = onDismissRequest,
)
}

View File

@@ -9,7 +9,6 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.requiredHeightIn
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
@@ -78,7 +77,7 @@ fun PinInputDialog(
// This background is necessary for the dialog to not be transparent.
.background(
color = BitwardenTheme.colorScheme.background.primary,
shape = RoundedCornerShape(28.dp),
shape = BitwardenTheme.shapes.dialog,
),
horizontalAlignment = Alignment.End,
) {

View File

@@ -9,7 +9,6 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.requiredHeightIn
import androidx.compose.foundation.rememberScrollState
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.foundation.verticalScroll
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
@@ -57,7 +56,7 @@ fun AddEditBlockedUriDialog(
// This background is necessary for the dialog to not be transparent.
.background(
color = BitwardenTheme.colorScheme.background.primary,
shape = RoundedCornerShape(28.dp),
shape = BitwardenTheme.shapes.dialog,
),
horizontalAlignment = Alignment.End,
) {

View File

@@ -255,7 +255,7 @@ private fun PrivilegedAppsListContent(
) {
BitwardenStandardIconButton(
vectorIconRes = BitwardenDrawable.ic_delete,
contentDescription = "",
contentDescription = stringResource(id = BitwardenString.delete),
onClick = remember(item) {
{ onDeleteClick(item) }
},

View File

@@ -10,7 +10,6 @@ import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.navigationBarsPadding
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.ExperimentalMaterial3Api
import androidx.compose.material3.Text
import androidx.compose.material3.TopAppBarDefaults
@@ -186,7 +185,7 @@ private fun ScanHintBanner(
.semantics { liveRegion = LiveRegionMode.Polite }
.background(
color = BitwardenTheme.colorScheme.background.scrim,
shape = RoundedCornerShape(size = 8.dp),
shape = BitwardenTheme.shapes.content,
)
.padding(horizontal = 16.dp, vertical = 12.dp),
)

View File

@@ -1571,7 +1571,7 @@ class AccountSecurityScreenTest : BitwardenComposeTest() {
.assert(hasAnyAncestor(isDialog()))
.assertIsDisplayed()
composeTestRule
.onNodeWithText("fingerprint-placeholder")
.onNodeWithText(text = "fingerprint-placeholder", substring = true)
.assert(hasAnyAncestor(isDialog()))
.assertIsDisplayed()
}