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:
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(