From d8d0469ce169e54636072ab7ca0ee98cdcfa8088 Mon Sep 17 00:00:00 2001 From: codokie <151087174+codokie@users.noreply.github.com> Date: Tue, 8 Apr 2025 19:16:00 +0300 Subject: [PATCH 1/6] Force LTR text direction for sensitive fields --- .../com/x8bit/bitwarden/ui/platform/theme/type/Typography.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/Typography.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/Typography.kt index 4c0d660932f..34598e94a7d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/Typography.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/Typography.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.text.font.Font import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.LineHeightStyle +import androidx.compose.ui.text.style.TextDirection import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp @@ -228,6 +229,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Ltr, ), sensitiveInfoMedium = TextStyle( fontSize = 16.sp, @@ -240,6 +242,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Ltr, ), eyebrowMedium = TextStyle( fontSize = 12.sp, From 363a8a2d74ade9d17f0a0df14e07c9b79ee91655 Mon Sep 17 00:00:00 2001 From: codokie <151087174+codokie@users.noreply.github.com> Date: Tue, 8 Apr 2025 20:09:20 +0300 Subject: [PATCH 2/6] Set text direction based on content --- .../ui/platform/theme/type/Typography.kt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/Typography.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/Typography.kt index 34598e94a7d..ce3b2411a02 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/Typography.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/Typography.kt @@ -37,6 +37,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), displayMedium = TextStyle( fontSize = 44.sp, @@ -49,6 +50,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), displaySmall = TextStyle( fontSize = 36.sp, @@ -61,6 +63,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), headlineLarge = TextStyle( fontSize = 32.sp, @@ -73,6 +76,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), headlineMedium = TextStyle( fontSize = 28.sp, @@ -85,6 +89,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), headlineSmall = TextStyle( fontSize = 18.sp, @@ -97,6 +102,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), titleLarge = TextStyle( fontSize = 19.sp, @@ -109,6 +115,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), titleMedium = TextStyle( fontSize = 16.sp, @@ -121,6 +128,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), titleSmall = TextStyle( fontSize = 14.sp, @@ -133,6 +141,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), bodyLarge = TextStyle( fontSize = 15.sp, @@ -145,6 +154,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), bodyMedium = TextStyle( fontSize = 13.sp, @@ -157,6 +167,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), bodyMediumEmphasis = TextStyle( fontSize = 13.sp, @@ -169,6 +180,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), bodySmall = TextStyle( fontSize = 12.sp, @@ -181,6 +193,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), labelLarge = TextStyle( fontSize = 14.sp, @@ -193,6 +206,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), labelMedium = TextStyle( fontSize = 12.sp, @@ -205,6 +219,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), labelSmall = TextStyle( fontSize = 12.sp, @@ -217,6 +232,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), sensitiveInfoSmall = TextStyle( fontSize = 14.sp, @@ -255,6 +271,7 @@ val bitwardenTypography: BitwardenTypography = BitwardenTypography( trim = LineHeightStyle.Trim.None, ), platformStyle = PlatformTextStyle(includeFontPadding = false), + textDirection = TextDirection.Content, ), ) From 511c63e72859390f8212193e1b9617b3d86f6121 Mon Sep 17 00:00:00 2001 From: codokie <151087174+codokie@users.noreply.github.com> Date: Wed, 9 Apr 2025 22:40:09 +0300 Subject: [PATCH 3/6] Use layout direction to fix text alignment --- .../pendingrequests/PendingRequestsScreen.kt | 8 ++++- .../ui/platform/theme/BitwardenTheme.kt | 12 ++++++++ .../theme/type/BitwardenTypography.kt | 29 +++++++++++++++++++ 3 files changed, 48 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt index 6a8d9521f27..c1953e16670 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt @@ -35,9 +35,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.LayoutDirection import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.Lifecycle @@ -320,7 +322,11 @@ private fun PendingRequestItem( text = timestamp, style = BitwardenTheme.typography.labelSmall, color = BitwardenTheme.colorScheme.text.secondary, - textAlign = TextAlign.End, + textAlign = if (LocalLayoutDirection.current == LayoutDirection.Rtl) { + TextAlign.Left + } else { + TextAlign.Right + }, ) } } diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/BitwardenTheme.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/BitwardenTheme.kt index d0661dbeba6..ecaaef21654 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/BitwardenTheme.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/BitwardenTheme.kt @@ -16,7 +16,10 @@ import androidx.compose.runtime.ReadOnlyComposable import androidx.compose.runtime.SideEffect import androidx.compose.runtime.compositionLocalOf import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalLayoutDirection import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.unit.LayoutDirection import androidx.core.view.WindowCompat import com.x8bit.bitwarden.ui.platform.components.field.interceptor.IncognitoInput import com.x8bit.bitwarden.ui.platform.feature.settings.appearance.model.AppTheme @@ -30,6 +33,7 @@ import com.x8bit.bitwarden.ui.platform.theme.shape.bitwardenShapes import com.x8bit.bitwarden.ui.platform.theme.type.BitwardenTypography import com.x8bit.bitwarden.ui.platform.theme.type.bitwardenTypography import com.x8bit.bitwarden.ui.platform.theme.type.toMaterialTypography +import com.x8bit.bitwarden.ui.platform.theme.type.updateTextAlign /** * Static wrapper to make accessing the theme components easier. @@ -101,6 +105,14 @@ fun BitwardenTheme( else -> lightBitwardenColorScheme } + val textAlign = + if (LocalLayoutDirection.current == LayoutDirection.Rtl) { + TextAlign.Right + } else { + TextAlign.Left + } + val bitwardenTypography = bitwardenTypography.updateTextAlign(textAlign) + // Update status bar according to scheme val view = LocalView.current if (!view.isInEditMode) { diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/BitwardenTypography.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/BitwardenTypography.kt index 6054b047074..235c46ce909 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/BitwardenTypography.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/type/BitwardenTypography.kt @@ -2,6 +2,7 @@ package com.x8bit.bitwarden.ui.platform.theme.type import androidx.compose.runtime.Immutable import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.style.TextAlign /** * Defines all the text-styles for the app. @@ -28,3 +29,31 @@ data class BitwardenTypography( val sensitiveInfoMedium: TextStyle, val eyebrowMedium: TextStyle, ) + +/** + * Updates the textAlign property of all text-styles. + * @param newTextAlign The new text alignment to be used. + */ +fun BitwardenTypography.updateTextAlign(newTextAlign: TextAlign): BitwardenTypography { + return this.copy( + displayLarge = displayLarge.copy(textAlign = newTextAlign), + displayMedium = displayMedium.copy(textAlign = newTextAlign), + displaySmall = displaySmall.copy(textAlign = newTextAlign), + headlineLarge = headlineLarge.copy(textAlign = newTextAlign), + headlineMedium = headlineMedium.copy(textAlign = newTextAlign), + headlineSmall = headlineSmall.copy(textAlign = newTextAlign), + titleLarge = titleLarge.copy(textAlign = newTextAlign), + titleMedium = titleMedium.copy(textAlign = newTextAlign), + titleSmall = titleSmall.copy(textAlign = newTextAlign), + bodyLarge = bodyLarge.copy(textAlign = newTextAlign), + bodyMedium = bodyMedium.copy(textAlign = newTextAlign), + bodyMediumEmphasis = bodyMediumEmphasis.copy(textAlign = newTextAlign), + bodySmall = bodySmall.copy(textAlign = newTextAlign), + labelLarge = labelLarge.copy(textAlign = newTextAlign), + labelMedium = labelMedium.copy(textAlign = newTextAlign), + labelSmall = labelSmall.copy(textAlign = newTextAlign), + sensitiveInfoSmall = sensitiveInfoSmall.copy(textAlign = newTextAlign), + sensitiveInfoMedium = sensitiveInfoMedium.copy(textAlign = newTextAlign), + eyebrowMedium = eyebrowMedium.copy(textAlign = newTextAlign), + ) +} \ No newline at end of file From d7f26e49c5f511754a8a1ad2c00738ed96e604b7 Mon Sep 17 00:00:00 2001 From: codokie <151087174+codokie@users.noreply.github.com> Date: Wed, 9 Apr 2025 22:48:13 +0300 Subject: [PATCH 4/6] Don't use TextAlign.Start, fallback to text style alignment --- .../feature/enterprisesignon/EnterpriseSignOnScreen.kt | 2 -- .../auth/feature/loginwithdevice/LoginWithDeviceScreen.kt | 7 ------- .../ui/auth/feature/vaultunlock/VaultUnlockScreen.kt | 2 -- .../platform/components/card/BitwardenInfoCalloutCard.kt | 2 -- .../ui/platform/components/text/BitwardenClickableText.kt | 2 -- .../DeleteAccountConfirmationScreen.kt | 3 --- .../accountsecurity/loginapproval/LoginApprovalScreen.kt | 2 -- .../pendingrequests/PendingRequestsScreen.kt | 3 --- .../feature/settings/exportvault/ExportVaultScreen.kt | 2 -- 9 files changed, 25 deletions(-) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt index 827ab4e579c..87f2b0f6137 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/enterprisesignon/EnterpriseSignOnScreen.kt @@ -20,7 +20,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -133,7 +132,6 @@ private fun EnterpriseSignOnScreenContent( Spacer(modifier = Modifier.height(height = 12.dp)) Text( text = stringResource(id = R.string.log_in_sso_summary), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.text.primary, modifier = Modifier diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreen.kt index f42c0e476f9..1cb91aa064c 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/loginwithdevice/LoginWithDeviceScreen.kt @@ -27,7 +27,6 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -136,7 +135,6 @@ private fun LoginWithDeviceScreenContent( ) { Text( text = state.title(), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.headlineMedium, color = BitwardenTheme.colorScheme.text.primary, modifier = Modifier @@ -148,7 +146,6 @@ private fun LoginWithDeviceScreenContent( Text( text = state.subtitle(), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.text.primary, modifier = Modifier @@ -160,7 +157,6 @@ private fun LoginWithDeviceScreenContent( Text( text = state.description(), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.text.primary, modifier = Modifier @@ -172,7 +168,6 @@ private fun LoginWithDeviceScreenContent( Text( text = stringResource(id = R.string.fingerprint_phrase), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.titleLarge, color = BitwardenTheme.colorScheme.text.primary, modifier = Modifier @@ -184,7 +179,6 @@ private fun LoginWithDeviceScreenContent( Text( text = state.fingerprintPhrase, - textAlign = TextAlign.Start, color = BitwardenTheme.colorScheme.text.codePink, style = BitwardenTheme.typography.sensitiveInfoSmall, minLines = 2, @@ -223,7 +217,6 @@ private fun LoginWithDeviceScreenContent( Text( text = state.otherOptions(), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.text.primary, modifier = Modifier diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/vaultunlock/VaultUnlockScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/vaultunlock/VaultUnlockScreen.kt index 799134a1045..0db8b22a1d0 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/vaultunlock/VaultUnlockScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/auth/feature/vaultunlock/VaultUnlockScreen.kt @@ -31,7 +31,6 @@ import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -333,7 +332,6 @@ fun VaultUnlockScreen( } else if (state.showBiometricInvalidatedMessage) { Text( text = stringResource(R.string.account_biometric_invalidated), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.status.error, modifier = Modifier.standardHorizontalMargin(), diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/card/BitwardenInfoCalloutCard.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/card/BitwardenInfoCalloutCard.kt index 605f29a8423..5794fcbcc54 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/card/BitwardenInfoCalloutCard.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/card/BitwardenInfoCalloutCard.kt @@ -5,7 +5,6 @@ import androidx.compose.foundation.layout.padding import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import com.x8bit.bitwarden.ui.platform.theme.BitwardenTheme @@ -23,7 +22,6 @@ fun BitwardenInfoCalloutCard( ) { Text( text = text, - textAlign = TextAlign.Start, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.text.primary, modifier = modifier diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/text/BitwardenClickableText.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/text/BitwardenClickableText.kt index 4c407aaf137..6a84228c01b 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/text/BitwardenClickableText.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/components/text/BitwardenClickableText.kt @@ -21,7 +21,6 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.painter.Painter import androidx.compose.ui.text.TextStyle -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp @@ -75,7 +74,6 @@ fun BitwardenClickableText( } Text( text = label, - textAlign = TextAlign.Start, color = color, style = style, ) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreen.kt index 31005644a9e..25f2a651a2d 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/deleteaccountconfirmation/DeleteAccountConfirmationScreen.kt @@ -23,7 +23,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel @@ -139,7 +138,6 @@ private fun DeleteAccountConfirmationContent( ) { Text( text = stringResource(id = R.string.a_verification_code_was_sent_to_your_email), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.text.primary, modifier = Modifier @@ -162,7 +160,6 @@ private fun DeleteAccountConfirmationContent( Spacer(modifier = Modifier.height(12.dp)) Text( text = stringResource(id = R.string.confirm_your_identity), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.text.primary, modifier = Modifier diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt index a88704ad6f4..93164cdbb0e 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/loginapproval/LoginApprovalScreen.kt @@ -25,7 +25,6 @@ import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.semantics import androidx.compose.ui.semantics.testTag -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -183,7 +182,6 @@ private fun LoginApprovalContent( Text( text = state.fingerprint, - textAlign = TextAlign.Start, color = BitwardenTheme.colorScheme.text.codePink, style = BitwardenTheme.typography.sensitiveInfoSmall, modifier = Modifier diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt index c1953e16670..a3dfb6b6024 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/accountsecurity/pendingrequests/PendingRequestsScreen.kt @@ -288,7 +288,6 @@ private fun PendingRequestItem( text = stringResource(id = R.string.fingerprint_phrase), style = BitwardenTheme.typography.labelMedium, color = BitwardenTheme.colorScheme.text.primary, - textAlign = TextAlign.Start, modifier = Modifier.fillMaxWidth(), ) @@ -298,7 +297,6 @@ private fun PendingRequestItem( text = fingerprintPhrase, color = BitwardenTheme.colorScheme.text.codePink, style = BitwardenTheme.typography.sensitiveInfoSmall, - textAlign = TextAlign.Start, modifier = Modifier .testTag("FingerprintValueLabel") .fillMaxWidth(), @@ -315,7 +313,6 @@ private fun PendingRequestItem( text = platform, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.text.secondary, - textAlign = TextAlign.Start, ) Spacer(modifier = Modifier.width(width = 16.dp)) Text( diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt index 95bbd71a247..3d9034cd8e8 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/feature/settings/exportvault/ExportVaultScreen.kt @@ -26,7 +26,6 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.testTag import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.input.KeyboardType -import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle @@ -276,7 +275,6 @@ private fun ExportVaultScreenContent( Text( text = stringResource(id = R.string.send_verification_code_to_email), - textAlign = TextAlign.Start, style = BitwardenTheme.typography.bodyMedium, color = BitwardenTheme.colorScheme.text.primary, modifier = Modifier From 217929b27c7d1d0877c9689f8a4964cf4e606d25 Mon Sep 17 00:00:00 2001 From: codokie <151087174+codokie@users.noreply.github.com> Date: Thu, 10 Apr 2025 11:12:06 +0300 Subject: [PATCH 5/6] Add comment --- .../java/com/x8bit/bitwarden/ui/platform/theme/BitwardenTheme.kt | 1 + 1 file changed, 1 insertion(+) diff --git a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/BitwardenTheme.kt b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/BitwardenTheme.kt index ecaaef21654..cccda2ddfe4 100644 --- a/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/BitwardenTheme.kt +++ b/app/src/main/java/com/x8bit/bitwarden/ui/platform/theme/BitwardenTheme.kt @@ -105,6 +105,7 @@ fun BitwardenTheme( else -> lightBitwardenColorScheme } + // Update text alignment according to the current layout direction. val textAlign = if (LocalLayoutDirection.current == LayoutDirection.Rtl) { TextAlign.Right From 64445d970ec4b479c23cc4d4a46163e4a98d8ccd Mon Sep 17 00:00:00 2001 From: codokie <151087174+codokie@users.noreply.github.com> Date: Sat, 30 Aug 2025 15:58:44 +0300 Subject: [PATCH 6/6] Add newline at EOF --- .../com/bitwarden/ui/platform/theme/type/BitwardenTypography.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ui/src/main/kotlin/com/bitwarden/ui/platform/theme/type/BitwardenTypography.kt b/ui/src/main/kotlin/com/bitwarden/ui/platform/theme/type/BitwardenTypography.kt index 7251e4cba71..8dd3ad8c5c3 100644 --- a/ui/src/main/kotlin/com/bitwarden/ui/platform/theme/type/BitwardenTypography.kt +++ b/ui/src/main/kotlin/com/bitwarden/ui/platform/theme/type/BitwardenTypography.kt @@ -56,4 +56,4 @@ fun BitwardenTypography.updateTextAlign(newTextAlign: TextAlign): BitwardenTypog sensitiveInfoMedium = sensitiveInfoMedium.copy(textAlign = newTextAlign), eyebrowMedium = eyebrowMedium.copy(textAlign = newTextAlign), ) -} \ No newline at end of file +}