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:
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)
}
}