tor-browser

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

commit ab6f777ef0d8c9bb8ed0f269c4dece1082877bd0
parent 595a04dfb0a47baf5615974930143b020a347dda
Author: Gabriel Luong <gabriel.luong@gmail.com>
Date:   Tue,  2 Dec 2025 16:34:01 +0000

Bug 1993368 - Part 45: Revert adding a Surface around the Dropdown component r=android-reviewers,sfamisa

- Adding a Surface around the Dropdown messed around with how the layout can handle weight in a Row,
which resulted in CreditCardAutofillTest UI test failures.

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

Diffstat:
Mmobile/android/android-components/components/compose/base/src/main/java/mozilla/components/compose/base/Dropdown.kt | 134+++++++++++++++++++++++++++++++++++++++----------------------------------------
1 file changed, 66 insertions(+), 68 deletions(-)

diff --git a/mobile/android/android-components/components/compose/base/src/main/java/mozilla/components/compose/base/Dropdown.kt b/mobile/android/android-components/components/compose/base/src/main/java/mozilla/components/compose/base/Dropdown.kt @@ -96,79 +96,77 @@ fun Dropdown( var measuredDropdownMenuWidthDp by remember { mutableStateOf(0.dp) } - Surface { - Column( - modifier = modifier - .clickable { - expanded = true - } - .semantics { role = Role.DropdownList }, - ) { - Text( - text = label, - modifier = Modifier - .wrapContentSize() - .defaultMinSize(minHeight = 16.dp) - .wrapContentHeight(), - style = AcornTheme.typography.caption, - ) - - Spacer(modifier = Modifier.height(4.dp)) - - val placeholderText = checkedItemText?.value ?: placeholder - - Box { - Row { - Text( - text = placeholderText, - modifier = Modifier.weight(1f), - style = AcornTheme.typography.subtitle1, - ) - - Spacer(modifier = Modifier.width(10.dp)) - - Icon( - painter = painterResource(id = iconsR.drawable.mozac_ic_dropdown_arrow), - contentDescription = null, - ) + Column( + modifier = modifier + .clickable { + expanded = true + } + .semantics { role = Role.DropdownList }, + ) { + Text( + text = label, + modifier = Modifier + .wrapContentSize() + .defaultMinSize(minHeight = 16.dp) + .wrapContentHeight(), + style = AcornTheme.typography.caption, + ) + + Spacer(modifier = Modifier.height(4.dp)) + + val placeholderText = checkedItemText?.value ?: placeholder + + Box { + Row { + Text( + text = placeholderText, + modifier = Modifier.weight(1f), + style = AcornTheme.typography.subtitle1, + ) + + Spacer(modifier = Modifier.width(10.dp)) + + Icon( + painter = painterResource(id = iconsR.drawable.mozac_ic_dropdown_arrow), + contentDescription = null, + ) + } + + Box(modifier = Modifier.align(Alignment.TopEnd)) { + val widthModifier = if (dropdownMenuWidth == null) { + Modifier + } else { + Modifier.width(width = dropdownMenuWidth) } - Box(modifier = Modifier.align(Alignment.TopEnd)) { - val widthModifier = if (dropdownMenuWidth == null) { - Modifier - } else { - Modifier.width(width = dropdownMenuWidth) - } - - DropdownMenu( - menuItems = dropdownItems, - expanded = expanded, - modifier = Modifier - .onGloballyPositioned { coordinates -> - measuredDropdownMenuWidthDp = with(density) { - coordinates.size.width.toDp() - } + DropdownMenu( + menuItems = dropdownItems, + expanded = expanded, + modifier = Modifier + .onGloballyPositioned { coordinates -> + measuredDropdownMenuWidthDp = with(density) { + coordinates.size.width.toDp() } - .requiredSizeIn(maxHeight = DropdownMenuMaxHeight) - .then(widthModifier), - offset = if (isInLandscapeMode) { - DpOffset( - -measuredDropdownMenuWidthDp, - IconSize, - ) - } else { - DpOffset( - 0.dp, - IconSize, - ) - }, - onDismissRequest = { expanded = false }, - ) - } + } + .requiredSizeIn(maxHeight = DropdownMenuMaxHeight) + .then(widthModifier), + offset = if (isInLandscapeMode) { + DpOffset( + -measuredDropdownMenuWidthDp, + IconSize, + ) + } else { + DpOffset( + 0.dp, + IconSize, + ) + }, + onDismissRequest = { expanded = false }, + ) } - - HorizontalDivider(color = AcornTheme.colors.formDefault) } + + HorizontalDivider(color = AcornTheme.colors.formDefault) } }