tor-browser

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

commit 4b12131e9deb50a908ad4e4cffd148541abe5b33
parent a490b16307aff4c55cb8d53f2b28f6168e30a129
Author: Gabriel Luong <gabriel.luong@gmail.com>
Date:   Wed, 10 Dec 2025 15:33:07 +0000

Bug 2004511 - Part 10: Migrate textPrimary and textSecondary usages to their respective M3 color token r=android-reviewers,007

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

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStrip.kt | 3++-
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStripCard.kt | 1-
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/experiments/ResearchSurfaceDialogFragment.kt | 1-
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/experiments/view/ResearchSurfaceSurvey.kt | 96+++++++++++++++++++++++++++++++++++++++++++------------------------------------
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/pocket/PocketState.kt | 3+--
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserSimpleToolbar.kt | 17+++++++----------
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/SettingsSearchResultItem.kt | 6++++--
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/SettingsSearchScreen.kt | 3++-
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/ui/SettingsSearchSectionHeader.kt | 10+++++++---
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/tabstray/EmptyTabPage.kt | 3++-
10 files changed, 77 insertions(+), 66 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStrip.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStrip.kt @@ -30,6 +30,7 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.systemGestureExclusion import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.LaunchedEffect @@ -390,7 +391,7 @@ private fun TabItem( Text( text = state.title, modifier = Modifier.align(Alignment.CenterStart), - color = FirefoxTheme.colors.textPrimary, + color = MaterialTheme.colorScheme.onSurface, softWrap = false, maxLines = 1, style = FirefoxTheme.typography.subtitle2, diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStripCard.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/browser/tabstrip/TabStripCard.kt @@ -64,7 +64,6 @@ private fun TabStripCardPreview() { ) { Text( text = "Tab Strip Card", - color = FirefoxTheme.colors.textPrimary, style = FirefoxTheme.typography.subtitle1, ) } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/experiments/ResearchSurfaceDialogFragment.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/experiments/ResearchSurfaceDialogFragment.kt @@ -19,7 +19,6 @@ import org.mozilla.fenix.theme.FirefoxTheme /** * Dialog displaying the fullscreen research surface message. */ - class ResearchSurfaceDialogFragment : DialogFragment() { private val args by navArgs<ResearchSurfaceDialogFragmentArgs>() private lateinit var bundleArgs: Bundle diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/experiments/view/ResearchSurfaceSurvey.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/experiments/view/ResearchSurfaceSurvey.kt @@ -22,6 +22,7 @@ import androidx.compose.foundation.layout.statusBarsPadding import androidx.compose.foundation.layout.width 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.LaunchedEffect @@ -101,55 +102,62 @@ fun ResearchSurfaceSurvey( onAccept: () -> Unit, ) { SlideInFromBottomAnimation { - Box( - modifier = Modifier - .fillMaxSize() - .statusBarsPadding() - .navigationBarsPadding(), - ) { - Column( + Surface { + Box( modifier = Modifier - .fillMaxHeight(FULLSCREEN_HEIGHT) - .align(Alignment.Center) - .verticalScroll(rememberScrollState()), - horizontalAlignment = Alignment.CenterHorizontally, - verticalArrangement = Arrangement.SpaceBetween, + .fillMaxSize() + .statusBarsPadding() + .navigationBarsPadding(), ) { - Spacer(Modifier) Column( - modifier = Modifier.padding(horizontal = 16.dp), + modifier = Modifier + .fillMaxHeight(FULLSCREEN_HEIGHT) + .align(Alignment.Center) + .verticalScroll(rememberScrollState()), horizontalAlignment = Alignment.CenterHorizontally, + verticalArrangement = Arrangement.SpaceBetween, ) { - Image( - painter = painterResource(R.drawable.ic_firefox), - contentDescription = null, - modifier = Modifier - .height(112.dp) - .width(108.dp), - ) - Spacer(modifier = Modifier.height(16.dp)) - Text( - text = messageText, - color = FirefoxTheme.colors.textPrimary, - textAlign = TextAlign.Center, - style = FirefoxTheme.typography.headline6, - ) - } - Column( - horizontalAlignment = Alignment.CenterHorizontally, - modifier = Modifier.fillMaxWidth(BUTTON_WIDTH), - ) { - FilledButton( - text = onAcceptButtonText, - modifier = Modifier.fillMaxWidth(), - onClick = onAccept, - ) - Spacer(modifier = Modifier.height(8.dp)) - OutlinedButton( - text = onDismissButtonText, - modifier = Modifier.fillMaxWidth(), - onClick = onDismiss, - ) + Spacer(Modifier) + + Column( + modifier = Modifier.padding(horizontal = 16.dp), + horizontalAlignment = Alignment.CenterHorizontally, + ) { + Image( + painter = painterResource(R.drawable.ic_firefox), + contentDescription = null, + modifier = Modifier + .height(112.dp) + .width(108.dp), + ) + + Spacer(modifier = Modifier.height(16.dp)) + + Text( + text = messageText, + textAlign = TextAlign.Center, + style = FirefoxTheme.typography.headline6, + ) + } + + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.fillMaxWidth(BUTTON_WIDTH), + ) { + FilledButton( + text = onAcceptButtonText, + modifier = Modifier.fillMaxWidth(), + onClick = onAccept, + ) + + Spacer(modifier = Modifier.height(8.dp)) + + OutlinedButton( + text = onDismissButtonText, + modifier = Modifier.fillMaxWidth(), + onClick = onDismiss, + ) + } } } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/pocket/PocketState.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/pocket/PocketState.kt @@ -12,7 +12,6 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.graphics.Color import mozilla.components.service.pocket.PocketStory import org.mozilla.fenix.components.appstate.AppState -import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.utils.Settings /** @@ -49,7 +48,7 @@ data class PocketState( */ @Composable internal fun build(appState: AppState, settings: Settings) = with(appState) { - var textColor = FirefoxTheme.colors.textPrimary + var textColor = MaterialTheme.colorScheme.onSurface var linkTextColor = MaterialTheme.colorScheme.tertiary wallpaperState.currentWallpaper.let { currentWallpaper -> diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserSimpleToolbar.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/home/toolbar/BrowserSimpleToolbar.kt @@ -9,9 +9,9 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Surface import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider import androidx.compose.runtime.derivedStateOf import androidx.compose.runtime.getValue import androidx.compose.runtime.remember @@ -21,7 +21,6 @@ import androidx.compose.ui.graphics.Color 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.theme.localAcornColors import mozilla.components.compose.browser.toolbar.ActionContainer import mozilla.components.compose.browser.toolbar.concept.Action import mozilla.components.compose.browser.toolbar.concept.Action.ActionButtonRes @@ -39,7 +38,6 @@ import mozilla.components.lib.state.ext.observeAsComposableState import org.mozilla.fenix.components.AppStore import org.mozilla.fenix.theme.FirefoxTheme import org.mozilla.fenix.theme.Theme -import org.mozilla.fenix.wallpapers.WallpaperState import mozilla.components.ui.icons.R as iconsR /** @@ -62,21 +60,20 @@ fun BrowserSimpleToolbar( val currentWallpaperTextColor = appStore.observeAsComposableState { state -> state.wallpaperState.currentWallpaper.textColor } - val defaultWallpaperTextColor = WallpaperState.default.buttonTextColor + val defaultWallpaperTextColor = MaterialTheme.colorScheme.onSurface val buttonsColor by remember(currentWallpaperTextColor.value) { derivedStateOf { currentWallpaperTextColor.value?.let { Color(it) } ?: defaultWallpaperTextColor } } - val firefoxColors = FirefoxTheme.colors - val customTheme = remember(buttonsColor) { - firefoxColors.copy( - textPrimary = buttonsColor, - iconPrimary = buttonsColor, + val materialColors = MaterialTheme.colorScheme + val colorScheme = remember(buttonsColor, materialColors) { + materialColors.copy( + onSurface = buttonsColor, ) } - CompositionLocalProvider(localAcornColors provides customTheme) { + MaterialTheme(colorScheme = colorScheme) { Row( modifier = Modifier .fillMaxWidth(), diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/SettingsSearchResultItem.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/SettingsSearchResultItem.kt @@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.remember @@ -74,13 +75,14 @@ fun SettingsSearchResultItem( text = displayTitle, style = FirefoxTheme.typography.subtitle1, maxLines = 1, - color = FirefoxTheme.colors.textPrimary, + color = MaterialTheme.colorScheme.onSurface, ) + if (displaySubtitle.isNotBlank()) { Text( text = displaySubtitle, style = FirefoxTheme.typography.caption, - color = FirefoxTheme.colors.textSecondary, + color = MaterialTheme.colorScheme.onSurfaceVariant, ) } else { Spacer(modifier = Modifier.height(8.dp)) diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/SettingsSearchScreen.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/SettingsSearchScreen.kt @@ -18,6 +18,7 @@ import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.rememberLazyListState import androidx.compose.material3.ButtonDefaults import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.material3.TextButton @@ -124,7 +125,7 @@ private fun SettingsSearchMessageContent( text = displayMessage, textAlign = TextAlign.Center, style = FirefoxTheme.typography.body2, - color = FirefoxTheme.colors.textSecondary, + color = MaterialTheme.colorScheme.onSurfaceVariant, ) } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/ui/SettingsSearchSectionHeader.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/settings/settingssearch/ui/SettingsSearchSectionHeader.kt @@ -7,6 +7,8 @@ package org.mozilla.fenix.settings.settingssearch.ui import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Surface import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier @@ -24,12 +26,12 @@ fun SettingsSearchSectionHeader(title: String) { Box( modifier = Modifier .fillMaxWidth() - .padding(horizontal = 16.dp, vertical = 16.dp), + .padding(all = 16.dp), ) { Text( text = title, style = FirefoxTheme.typography.headline8, - color = FirefoxTheme.colors.textSecondary, + color = MaterialTheme.colorScheme.onSurfaceVariant, ) } } @@ -38,6 +40,8 @@ fun SettingsSearchSectionHeader(title: String) { @Composable private fun SettingsSearchSectionHeaderPreview() { FirefoxTheme { - SettingsSearchSectionHeader("General") + Surface { + SettingsSearchSectionHeader("General") + } } } diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tabstray/EmptyTabPage.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/tabstray/EmptyTabPage.kt @@ -7,6 +7,7 @@ package org.mozilla.fenix.tabstray import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment @@ -44,7 +45,7 @@ internal fun EmptyTabPage(isPrivate: Boolean) { modifier = Modifier .align(Alignment.TopCenter) .padding(top = 80.dp), - color = FirefoxTheme.colors.textSecondary, + color = MaterialTheme.colorScheme.onSurfaceVariant, style = FirefoxTheme.typography.body1, ) }