tor-browser

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

commit 16a79f4069c47f6f7f91d399c59a67dd8e236876
parent f78cf208866ec705a39ba2ae0c192bbb7589e200
Author: Gabriel Luong <gabriel.luong@gmail.com>
Date:   Tue, 18 Nov 2025 21:46:24 +0000

Bug 2000090 - Part 10: Migrate RegionTools to use M3 color tokens r=android-reviewers,007

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

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/debugsettings/region/RegionTools.kt | 197+++++++++++++++++++++++++++++++++++++++++--------------------------------------
1 file changed, 103 insertions(+), 94 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/debugsettings/region/RegionTools.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/debugsettings/region/RegionTools.kt @@ -5,8 +5,6 @@ package org.mozilla.fenix.debugsettings.region import android.content.Context -import androidx.compose.foundation.background -import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth @@ -14,6 +12,7 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll +import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue @@ -22,6 +21,7 @@ import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.stringResource +import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewLightDark import androidx.compose.ui.unit.dp import androidx.core.content.edit @@ -36,6 +36,7 @@ import mozilla.components.lib.state.ext.observeAsState import org.mozilla.fenix.Config import org.mozilla.fenix.R import org.mozilla.fenix.theme.FirefoxTheme +import org.mozilla.fenix.theme.Theme private const val DEFAULT_REGION = "XX" private const val MAX_REGION_LENGTH = 2 @@ -59,106 +60,108 @@ fun RegionTools( val homeRegion = viewModel.homeRegion val currentRegion = viewModel.currentRegion - Column( - modifier = Modifier - .padding(all = 16.dp) - .verticalScroll(state = rememberScrollState()), - ) { - Text( - text = stringResource(R.string.debug_drawer_regin_tools_description), - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.headline8, - ) + Surface { + Column( + modifier = Modifier + .padding(all = 16.dp) + .verticalScroll(state = rememberScrollState()), + ) { + Text( + text = stringResource(R.string.debug_drawer_regin_tools_description), + style = FirefoxTheme.typography.headline8, + ) - Spacer(modifier = Modifier.height(16.dp)) + Spacer(modifier = Modifier.height(16.dp)) - Text( - text = stringResource(R.string.debug_drawer_home_region_label), - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.caption, - modifier = Modifier.padding(4.dp), - ) + Text( + text = stringResource(R.string.debug_drawer_home_region_label), + style = FirefoxTheme.typography.caption, + modifier = Modifier.padding(4.dp), + ) - Text( - text = region.home, - color = FirefoxTheme.colors.textPrimary, - modifier = Modifier.padding(4.dp), - style = FirefoxTheme.typography.body1, - ) + Text( + text = region.home, + modifier = Modifier.padding(4.dp), + style = FirefoxTheme.typography.body1, + ) - Text( - text = stringResource(R.string.debug_drawer_current_region_label), - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.caption, - modifier = Modifier.padding(4.dp), - ) + Text( + text = stringResource(R.string.debug_drawer_current_region_label), + style = FirefoxTheme.typography.caption, + modifier = Modifier.padding(4.dp), + ) - Text( - text = region.current, - color = FirefoxTheme.colors.textPrimary, - modifier = Modifier.padding(4.dp), - style = FirefoxTheme.typography.body1, - ) + Text( + text = region.current, + modifier = Modifier.padding(4.dp), + style = FirefoxTheme.typography.body1, + ) - Spacer(modifier = Modifier.height(16.dp)) - - TextField( - value = viewModel.homeRegion, - onValueChange = { - it.validRegionInput(MAX_REGION_LENGTH)?.let { verifiedInput -> - viewModel.homeRegion = verifiedInput - } - }, - placeholder = "", - errorText = "", - modifier = Modifier.fillMaxWidth().padding(4.dp), - label = stringResource(R.string.debug_drawer_override_home_region_label), - ) + Spacer(modifier = Modifier.height(16.dp)) - TextField( - value = viewModel.currentRegion, - onValueChange = { - it.validRegionInput(MAX_REGION_LENGTH)?.let { verifiedInput -> - viewModel.currentRegion = verifiedInput - } - }, - placeholder = "", - errorText = "", - modifier = Modifier.fillMaxWidth().padding(4.dp), - label = stringResource(R.string.debug_drawer_override_current_region_label), - ) + TextField( + value = viewModel.homeRegion, + onValueChange = { + it.validRegionInput(MAX_REGION_LENGTH)?.let { verifiedInput -> + viewModel.homeRegion = verifiedInput + } + }, + placeholder = "", + errorText = "", + modifier = Modifier.fillMaxWidth().padding(4.dp), + label = stringResource(R.string.debug_drawer_override_home_region_label), + ) - Spacer(modifier = Modifier.height(16.dp)) - - FilledButton( - text = stringResource(R.string.debug_drawer_override_region), - modifier = Modifier.fillMaxWidth(), - onClick = { - browserStore.dispatch( - SearchAction.SetRegionAction( - regionState = RegionState( - home = homeRegion.ifBlank { DEFAULT_REGION }, - current = currentRegion.ifBlank { DEFAULT_REGION }, - ), - distribution = null, - ), - ) - }, - ) + TextField( + value = viewModel.currentRegion, + onValueChange = { + it.validRegionInput(MAX_REGION_LENGTH)?.let { verifiedInput -> + viewModel.currentRegion = verifiedInput + } + }, + placeholder = "", + errorText = "", + modifier = Modifier.fillMaxWidth().padding(4.dp), + label = stringResource(R.string.debug_drawer_override_current_region_label), + ) - if (Config.channel.isNightlyOrDebug) { - val preferences = LocalContext.current.getSharedPreferences( - PREFERENCE_FILE, - Context.MODE_PRIVATE, - ) + Spacer(modifier = Modifier.height(16.dp)) FilledButton( - text = stringResource(R.string.debug_drawer_override_home_region_permanently), + text = stringResource(R.string.debug_drawer_override_region), modifier = Modifier.fillMaxWidth(), onClick = { - preferences.edit { putString(PREFERENCE_KEY_HOME_REGION, homeRegion.ifBlank { DEFAULT_REGION }) } + browserStore.dispatch( + SearchAction.SetRegionAction( + regionState = RegionState( + home = homeRegion.ifBlank { DEFAULT_REGION }, + current = currentRegion.ifBlank { DEFAULT_REGION }, + ), + distribution = null, + ), + ) }, ) + + if (Config.channel.isNightlyOrDebug) { + val preferences = LocalContext.current.getSharedPreferences( + PREFERENCE_FILE, + Context.MODE_PRIVATE, + ) + + FilledButton( + text = stringResource(R.string.debug_drawer_override_home_region_permanently), + modifier = Modifier.fillMaxWidth(), + onClick = { + preferences.edit { + putString( + PREFERENCE_KEY_HOME_REGION, + homeRegion.ifBlank { DEFAULT_REGION }, + ) + } + }, + ) + } } } } @@ -183,12 +186,18 @@ class RegionToolsViewModel : ViewModel() { @PreviewLightDark private fun RegionScreenPreview() { FirefoxTheme { - Box( - modifier = Modifier.background(color = FirefoxTheme.colors.layer1), - ) { - RegionTools( - browserStore = BrowserStore(), - ) - } + RegionTools( + browserStore = BrowserStore(), + ) + } +} + +@Composable +@Preview +private fun RegionScreenPrivatePreview() { + FirefoxTheme(theme = Theme.Private) { + RegionTools( + browserStore = BrowserStore(), + ) } }