tor-browser

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

commit f3b8ffc6a414b27bfb7380fa5cd9be2191a6b63a
parent 474ec71a5d692932cd9743b8097416baf9e3eaf8
Author: Gabriel Luong <gabriel.luong@gmail.com>
Date:   Fri, 17 Oct 2025 05:25:21 +0000

Bug 1993655 - Part 2: Fix the Divider usage in ListItems and MenuItems r=android-reviewers,calu

- Fixes a regression from Bug 1973792 which replaced all Divider with HorizontalDivider. We are replacing the HorziontalDivider used in MenuItems and ListItems to use VerticalDivider and aligning with the M3 Acorn specs.

Divider Figma: https://www.figma.com/design/MjufE1X5fvkxZ0YneX4kRd/Android-Library--2025-?node-id=63874-6406&m=dev
Menu Figma: https://www.figma.com/design/MjufE1X5fvkxZ0YneX4kRd/Android-Library--2025-?node-id=64397-1867&m=dev

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

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/AddonMenuItem.kt | 1-
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/MenuItem.kt | 11++---------
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/compose/list/ListItem.kt | 61+++++++++++++++++--------------------------------------------
3 files changed, 19 insertions(+), 54 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/AddonMenuItem.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/AddonMenuItem.kt @@ -95,7 +95,6 @@ internal fun AddonMenuItem( faviconPainter = BitmapPainter(image = addonIcon.asImageBitmap()), onClick = onClick, showDivider = showDivider, - dividerColor = FirefoxTheme.colors.borderPrimary, iconPainter = if (isInstallAddonInProgress) { painterResource(id = iconsR.drawable.mozac_ic_sync_24) } else { diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/MenuItem.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/components/menu/compose/MenuItem.kt @@ -12,10 +12,8 @@ import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.defaultMinSize -import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size -import androidx.compose.foundation.layout.width import androidx.compose.foundation.layout.wrapContentHeight import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.shape.RoundedCornerShape @@ -23,6 +21,7 @@ import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.Text +import androidx.compose.material3.VerticalDivider import androidx.compose.runtime.Composable import androidx.compose.runtime.remember import androidx.compose.ui.Alignment @@ -265,13 +264,7 @@ internal fun WebExtensionMenuItem( ) } - HorizontalDivider( - modifier = Modifier - .padding(vertical = 6.dp) - .fillMaxHeight() - .width(1.dp), - color = FirefoxTheme.colors.borderPrimary, - ) + VerticalDivider() IconButton( modifier = Modifier.size(24.dp), diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/compose/list/ListItem.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/compose/list/ListItem.kt @@ -18,7 +18,6 @@ import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.RowScope import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.defaultMinSize -import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size @@ -27,10 +26,11 @@ import androidx.compose.foundation.shape.CircleShape import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.material3.Badge import androidx.compose.material3.BadgedBox -import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text +import androidx.compose.material3.VerticalDivider import androidx.compose.runtime.Composable import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -65,7 +65,6 @@ import mozilla.components.ui.icons.R as iconsR private val LIST_ITEM_HEIGHT = 56.dp private val ICON_SIZE = 24.dp -private val DIVIDER_VERTICAL_PADDING = 6.dp private const val TOAST_LENGTH = Toast.LENGTH_SHORT @@ -198,7 +197,6 @@ fun TextListItem( * @param onLongClick Called when the user long clicks on the item. * @param showDivider Whether or not to display a vertical divider line before the [IconButton] * at the end. - * @param dividerColor [Color] to be applied to the divider. Default is [FirefoxTheme.colors.borderSecondary]. * @param iconPainter [Painter] used to display an [IconButton] after the list item. * @param iconButtonModifier [Modifier] to be applied to the icon button. * @param iconDescription Content description of the icon. @@ -217,7 +215,6 @@ fun FaviconListItem( onClick: (() -> Unit)? = null, onLongClick: (() -> Unit)? = null, showDivider: Boolean = false, - dividerColor: Color = FirefoxTheme.colors.borderSecondary, iconPainter: Painter? = null, iconButtonModifier: Modifier = Modifier, iconDescription: String? = null, @@ -256,13 +253,7 @@ fun FaviconListItem( if (showDivider) { Spacer(modifier = Modifier.width(8.dp)) - HorizontalDivider( - modifier = Modifier - .padding(vertical = DIVIDER_VERTICAL_PADDING) - .fillMaxHeight() - .width(1.dp), - color = dividerColor, - ) + VerticalDivider() } Spacer(modifier = Modifier.width(16.dp)) @@ -420,13 +411,7 @@ private fun IconListItemAfterIcon( if (showDivider) { Spacer(modifier = Modifier.width(8.dp)) - HorizontalDivider( - modifier = Modifier - .padding(vertical = DIVIDER_VERTICAL_PADDING) - .fillMaxHeight() - .width(1.dp), - color = FirefoxTheme.colors.borderSecondary, - ) + VerticalDivider() } Spacer(modifier = Modifier.width(16.dp)) @@ -573,13 +558,7 @@ fun SelectableFaviconListItem( if (showDivider) { Spacer(modifier = Modifier.width(8.dp)) - HorizontalDivider( - modifier = Modifier - .padding(vertical = DIVIDER_VERTICAL_PADDING) - .fillMaxHeight() - .width(1.dp), - color = FirefoxTheme.colors.borderSecondary, - ) + VerticalDivider() } Spacer(modifier = Modifier.width(16.dp)) @@ -693,13 +672,7 @@ fun SelectableIconListItem( if (showDivider) { Spacer(modifier = Modifier.width(8.dp)) - HorizontalDivider( - modifier = Modifier - .padding(vertical = DIVIDER_VERTICAL_PADDING) - .fillMaxHeight() - .width(1.dp), - color = FirefoxTheme.colors.borderSecondary, - ) + VerticalDivider() } Spacer(modifier = Modifier.width(16.dp)) @@ -957,7 +930,7 @@ private fun ListItemContent( @Preview(name = "TextListItem", uiMode = Configuration.UI_MODE_NIGHT_YES) private fun TextListItemPreview() { FirefoxTheme { - Box(Modifier.background(FirefoxTheme.colors.layer1)) { + Box(Modifier.background(MaterialTheme.colorScheme.surface)) { TextListItem(label = "Label only") } } @@ -967,7 +940,7 @@ private fun TextListItemPreview() { @Preview(name = "TextListItem with a description", uiMode = Configuration.UI_MODE_NIGHT_YES) private fun TextListItemWithDescriptionPreview() { FirefoxTheme { - Box(Modifier.background(FirefoxTheme.colors.layer1)) { + Box(Modifier.background(MaterialTheme.colorScheme.surface)) { TextListItem( label = "Label + description", description = "Description text", @@ -980,7 +953,7 @@ private fun TextListItemWithDescriptionPreview() { @Preview(name = "TextListItem with a right icon", uiMode = Configuration.UI_MODE_NIGHT_YES) private fun TextListItemWithIconPreview() { FirefoxTheme { - Column(Modifier.background(FirefoxTheme.colors.layer1)) { + Column(Modifier.background(MaterialTheme.colorScheme.surface)) { val context = LocalContext.current TextListItem( label = "Label + right icon button", @@ -1004,7 +977,7 @@ private fun TextListItemWithIconPreview() { @Preview(name = "IconListItem", uiMode = Configuration.UI_MODE_NIGHT_YES) private fun IconListItemPreview() { FirefoxTheme { - Column(Modifier.background(FirefoxTheme.colors.layer1)) { + Column(Modifier.background(MaterialTheme.colorScheme.surface)) { IconListItem( label = "Left icon list item", onClick = {}, @@ -1050,7 +1023,7 @@ private fun IconListItemPreview() { ) private fun IconListItemWithAfterListActionPreview() { FirefoxTheme { - Column(Modifier.background(FirefoxTheme.colors.layer1)) { + Column(Modifier.background(MaterialTheme.colorScheme.surface)) { val context = LocalContext.current IconListItem( label = "IconListItem + right icon + clicks", @@ -1081,7 +1054,7 @@ private fun IconListItemWithAfterListActionPreview() { ) private fun FaviconListItemPreview() { FirefoxTheme { - Column(Modifier.background(FirefoxTheme.colors.layer1)) { + Column(Modifier.background(MaterialTheme.colorScheme.surface)) { val context = LocalContext.current FaviconListItem( label = "Favicon + right icon + clicks", @@ -1117,7 +1090,7 @@ private fun FaviconListItemPreview() { @PreviewLightDark private fun ImageListItemPreview() { FirefoxTheme { - Column(Modifier.background(FirefoxTheme.colors.layer1)) { + Column(Modifier.background(MaterialTheme.colorScheme.surface)) { ImageListItem( label = "label", iconPainter = painterResource(iconsR.drawable.mozac_ic_web_extension_default_icon), @@ -1143,7 +1116,7 @@ private fun RadioButtonListItemPreview() { listOf("Radio button first item", "Radio button second item", "Radio button third item") val (selectedOption, onOptionSelected) = remember { mutableStateOf(radioOptions[1]) } FirefoxTheme { - Column(Modifier.background(FirefoxTheme.colors.layer1)) { + Column(Modifier.background(MaterialTheme.colorScheme.surface)) { radioOptions.forEach { text -> RadioButtonListItem( label = text, @@ -1160,7 +1133,7 @@ private fun RadioButtonListItemPreview() { @PreviewLightDark private fun SelectableFaviconListItemPreview() { FirefoxTheme { - Column(Modifier.background(FirefoxTheme.colors.layer1)) { + Column(Modifier.background(MaterialTheme.colorScheme.surface)) { SelectableFaviconListItem( label = "Favicon + right icon", url = "", @@ -1235,7 +1208,7 @@ private fun SelectableFaviconListItemPreview() { @Suppress("LongMethod") private fun SelectableIconListItemPreview() { FirefoxTheme { - Column(Modifier.background(FirefoxTheme.colors.layer1)) { + Column(Modifier.background(MaterialTheme.colorScheme.surface)) { SelectableIconListItem( label = "Left icon list item", isSelected = false, @@ -1321,7 +1294,7 @@ private fun SelectableIconListItemPreview() { @PreviewLightDark private fun SelectableListItemPreview() { FirefoxTheme { - Column(Modifier.background(FirefoxTheme.colors.layer1)) { + Column(Modifier.background(MaterialTheme.colorScheme.surface)) { SelectableListItem( label = "Selected item", description = "Description text",