tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

commit d5efd77c04dcebf13650e9d9c80897a10613674b
parent 3ed6ded546f8635fe972cca25d24339554fb54bf
Author: Gabriel Luong <gabriel.luong@gmail.com>
Date:   Fri, 21 Nov 2025 09:03:42 +0000

Bug 1998073 - Part 3: Migrate TrailingIcons to use M3 Acorn color tokens r=android-reviewers,007

https://www.figma.com/design/ctk1Pw1TBxUwVgTTOvjHb4/2025-Android-Fundamentals?node-id=972-28602&m=dev

Differential Revision: https://phabricator.services.mozilla.com/D271185

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/ui/TrailingIcons.kt | 53++++++++++++++++++++++++++++++++++++++++++-----------
1 file changed, 42 insertions(+), 11 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/ui/TrailingIcons.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/logins/ui/TrailingIcons.kt @@ -4,11 +4,10 @@ package org.mozilla.fenix.settings.logins.ui -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.material3.Icon +import androidx.compose.material3.Surface import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -18,13 +17,15 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.input.PasswordVisualTransformation import androidx.compose.ui.text.input.VisualTransformation +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.unit.dp import mozilla.components.compose.base.button.IconButton import mozilla.components.compose.base.text.Text import mozilla.components.compose.base.text.value import mozilla.components.compose.base.textfield.TextField -import mozilla.components.compose.base.theme.AcornTheme +import org.mozilla.fenix.theme.FirefoxTheme +import org.mozilla.fenix.theme.Theme import mozilla.components.ui.icons.R as iconsR /** @@ -50,7 +51,6 @@ fun EyePasswordIconButton( painterResource(id = iconsR.drawable.mozac_ic_eye_slash_24) }, contentDescription = null, - tint = AcornTheme.colors.textPrimary, ) } } @@ -60,19 +60,50 @@ fun EyePasswordIconButton( private fun EyePasswordIconButtonPreview() { var isPasswordVisible by remember { mutableStateOf(false) } - AcornTheme { - Column( - modifier = Modifier - .background(color = AcornTheme.colors.layer1) - .padding(8.dp), - ) { + FirefoxTheme { + Surface { TextField( value = "password", onValueChange = {}, isEnabled = true, placeholder = "", errorText = "", - modifier = Modifier.fillMaxWidth(), + modifier = Modifier + .fillMaxWidth() + .padding(8.dp), + label = "", + trailingIcons = { + EyePasswordIconButton( + isPasswordVisible = isPasswordVisible, + onTrailingIconClick = { isPasswordVisible = !isPasswordVisible }, + ) + }, + visualTransformation = if (isPasswordVisible) { + VisualTransformation.None + } else { + PasswordVisualTransformation() + }, + ) + } + } +} + +@Preview +@Composable +private fun EyePasswordIconButtonPrivatePreview() { + var isPasswordVisible by remember { mutableStateOf(false) } + + FirefoxTheme(theme = Theme.Private) { + Surface { + TextField( + value = "password", + onValueChange = {}, + isEnabled = true, + placeholder = "", + errorText = "", + modifier = Modifier + .fillMaxWidth() + .padding(8.dp), label = "", trailingIcons = { EyePasswordIconButton(