tor-browser

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

commit 521937312e7e3ef894ab4c8377d6b835770ab7db
parent da534667b5c73290c381cff2da009bd358c25d85
Author: Gabriel Luong <gabriel.luong@gmail.com>
Date:   Fri, 21 Nov 2025 05:25:59 +0000

Bug 1998021 - Part 6: Migrate TranslationOptionsDialog to M3 Acorn color tokens r=android-reviewers,007

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

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

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationOptionsDialog.kt | 115+++++++++++++++++++++++++++++++++++++++++++------------------------------------
1 file changed, 63 insertions(+), 52 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationOptionsDialog.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/translations/TranslationOptionsDialog.kt @@ -4,7 +4,6 @@ package org.mozilla.fenix.translations -import androidx.compose.foundation.background import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -18,6 +17,7 @@ import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -26,6 +26,7 @@ import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.semantics.heading import androidx.compose.ui.semantics.semantics +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.unit.dp import mozilla.components.concept.engine.translate.TranslationError @@ -35,6 +36,7 @@ import org.mozilla.fenix.compose.InfoType import org.mozilla.fenix.compose.SwitchWithLabel import org.mozilla.fenix.compose.list.TextListItem import org.mozilla.fenix.theme.FirefoxTheme +import org.mozilla.fenix.theme.Theme import java.util.Locale import mozilla.components.ui.icons.R as iconsR @@ -64,53 +66,48 @@ fun TranslationOptionsDialog( } translationOptionsList.forEach { item: TranslationSwitchItem -> - Column { - val translationSwitchItem = TranslationSwitchItem( - type = item.type, - textLabel = item.textLabel, - isChecked = item.isChecked, - isEnabled = item.isEnabled, - onStateChange = { translationPageSettingsOption, checked -> - item.onStateChange.invoke(translationPageSettingsOption, checked) - }, - ) - TranslationOptions( - translationSwitchItem = translationSwitchItem, - ) - } - } + val translationSwitchItem = TranslationSwitchItem( + type = item.type, + textLabel = item.textLabel, + isChecked = item.isChecked, + isEnabled = item.isEnabled, + onStateChange = { translationPageSettingsOption, checked -> + item.onStateChange.invoke(translationPageSettingsOption, checked) + }, + ) - if (showGlobalSettings) { - Column { - TextListItem( - label = stringResource(id = R.string.translation_option_bottom_sheet_translation_settings), - modifier = Modifier - .padding(start = 56.dp) - .defaultMinSize(minHeight = 56.dp) - .wrapContentHeight(), - onClick = { - onTranslationSettingsClicked() - }, - ) - } + TranslationOptions( + translationSwitchItem = translationSwitchItem, + ) } - Column { + if (showGlobalSettings) { TextListItem( - label = stringResource( - id = R.string.translation_option_bottom_sheet_about_translations, - formatArgs = arrayOf(stringResource(R.string.firefox)), - ), + label = stringResource(id = R.string.translation_option_bottom_sheet_translation_settings), modifier = Modifier - .fillMaxWidth() .padding(start = 56.dp) .defaultMinSize(minHeight = 56.dp) .wrapContentHeight(), - onClick = { aboutTranslationClicked() }, + onClick = { + onTranslationSettingsClicked() + }, ) - - Spacer(modifier = Modifier.height(16.dp)) } + + TextListItem( + label = stringResource( + id = R.string.translation_option_bottom_sheet_about_translations, + formatArgs = arrayOf(stringResource(R.string.firefox)), + ), + modifier = Modifier + .fillMaxWidth() + .padding(start = 56.dp) + .defaultMinSize(minHeight = 56.dp) + .wrapContentHeight(), + onClick = { aboutTranslationClicked() }, + ) + + Spacer(modifier = Modifier.height(16.dp)) } @Composable @@ -176,7 +173,6 @@ private fun TranslationOptionsDialogHeader( Icon( painter = painterResource(id = iconsR.drawable.mozac_ic_back_24), contentDescription = stringResource(R.string.etp_back_button_content_description), - tint = FirefoxTheme.colors.iconPrimary, ) } @@ -187,7 +183,6 @@ private fun TranslationOptionsDialogHeader( modifier = Modifier .weight(1f) .semantics { heading() }, - color = FirefoxTheme.colors.textPrimary, style = FirefoxTheme.typography.headline7, ) } @@ -248,18 +243,34 @@ fun getTranslationOptionsList(): List<TranslationSwitchItem> { @PreviewLightDark private fun TranslationSettingsPreview() { FirefoxTheme { - Column( - modifier = Modifier.background( - color = FirefoxTheme.colors.layer1, - ), - ) { - TranslationOptionsDialog( - translationOptionsList = getTranslationOptionsList(), - showGlobalSettings = true, - onBackClicked = {}, - onTranslationSettingsClicked = {}, - aboutTranslationClicked = {}, - ) + Surface { + Column { + TranslationOptionsDialog( + translationOptionsList = getTranslationOptionsList(), + showGlobalSettings = true, + onBackClicked = {}, + onTranslationSettingsClicked = {}, + aboutTranslationClicked = {}, + ) + } + } + } +} + +@Composable +@Preview +private fun TranslationSettingsPrivatePreview() { + FirefoxTheme(theme = Theme.Private) { + Surface { + Column { + TranslationOptionsDialog( + translationOptionsList = getTranslationOptionsList(), + showGlobalSettings = true, + onBackClicked = {}, + onTranslationSettingsClicked = {}, + aboutTranslationClicked = {}, + ) + } } } }