tor-browser

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

commit 4507c082c8dd95421f6ae992dd04887e810e35fc
parent 5df6c08a8dc5608e9e6c6c14ad72c40a542d5347
Author: Tooru Fujisawa <arai_a@mac.com>
Date:   Mon,  8 Dec 2025 08:45:52 +0000

Bug 1983183 - [WebCompat Reporter v2] Change layout and types of the form buttons r=android-reviewers,jdelorenzo

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

Diffstat:
Mmobile/android/fenix/app/src/main/java/org/mozilla/fenix/webcompat/ui/WebCompatReporter.kt | 130++++++++++++++++++++++++++++++++-----------------------------------------------
1 file changed, 52 insertions(+), 78 deletions(-)

diff --git a/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/webcompat/ui/WebCompatReporter.kt b/mobile/android/fenix/app/src/main/java/org/mozilla/fenix/webcompat/ui/WebCompatReporter.kt @@ -7,7 +7,6 @@ package org.mozilla.fenix.webcompat.ui import androidx.activity.compose.BackHandler import androidx.compose.foundation.ScrollState import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -17,13 +16,11 @@ import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.imePadding import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.width -import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.selection.toggleable import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Checkbox import androidx.compose.material3.ExperimentalMaterial3Api -import androidx.compose.material3.HorizontalDivider import androidx.compose.material3.Icon import androidx.compose.material3.IconButton import androidx.compose.material3.MaterialTheme @@ -55,6 +52,7 @@ import androidx.compose.ui.tooling.preview.PreviewParameterProvider import androidx.compose.ui.unit.dp import mozilla.components.compose.base.Dropdown import mozilla.components.compose.base.button.FilledButton +import mozilla.components.compose.base.button.OutlinedButton import mozilla.components.compose.base.button.TextButton import mozilla.components.compose.base.menu.MenuItem import mozilla.components.compose.base.modifier.thenConditional @@ -245,98 +243,74 @@ fun WebCompatReporter( } } - Spacer(modifier = Modifier.height(8.dp)) + Spacer(modifier = Modifier.height(16.dp)) - Row( + OutlinedButton( + text = stringResource(id = R.string.webcompat_reporter_preview_report), modifier = Modifier - .clickable { - previewSheetVisible = true - store.dispatch(WebCompatReporterAction.OpenPreviewClicked) - } - .padding(vertical = 8.dp) .fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceBetween, - ) { - Text( - text = stringResource(id = R.string.webcompat_reporter_preview_report), - modifier = Modifier, - color = FirefoxTheme.colors.textPrimary, - style = FirefoxTheme.typography.subtitle2, - ) - Icon( - painter = painterResource(R.drawable.ic_arrowhead_right), - contentDescription = "", - ) - } - - Spacer(modifier = Modifier.height(4.dp)) - - HorizontalDivider() + contentColor = MaterialTheme.colorScheme.primary, + onClick = { + previewSheetVisible = true + store.dispatch(WebCompatReporterAction.OpenPreviewClicked) + }, + ) - Spacer(modifier = Modifier.height(20.dp)) + Spacer(modifier = Modifier.height(16.dp)) - Row( + FilledButton( + text = stringResource(id = R.string.webcompat_reporter_send), modifier = Modifier .fillMaxWidth() - .padding(vertical = 16.dp), - verticalAlignment = Alignment.CenterVertically, + .semantics { + testTagsAsResourceId = true + testTag = BROKEN_SITE_REPORTER_SEND_BUTTON + }, + enabled = state.isSubmitEnabled, ) { - // Note: the "Add more info" button is not meant for Release, so we're only - // enabling it in Beta and Nightly/Debug - if (Config.channel.isBeta || Config.channel.isNightlyOrDebug) { - Text( - text = stringResource(id = R.string.webcompat_reporter_add_more_info), - modifier = Modifier - .clickable { - store.dispatch(WebCompatReporterAction.AddMoreInfoClicked) - }, - style = FirefoxTheme.typography.body2, - color = MaterialTheme.colorScheme.tertiary, - textDecoration = TextDecoration.Underline, - ) + store.dispatch(WebCompatReporterAction.SendReportClicked) + } - Spacer(modifier = Modifier.width(24.dp)) - } + Spacer(modifier = Modifier.height(16.dp)) - Row( - modifier = Modifier.weight(1f), - horizontalArrangement = Arrangement.End, - ) { - TextButton( - text = stringResource(id = R.string.webcompat_reporter_cancel), - onClick = { - store.dispatch(WebCompatReporterAction.CancelClicked) - }, - ) + TextButton( + text = stringResource(id = R.string.webcompat_reporter_cancel), + modifier = Modifier + .fillMaxWidth(), + onClick = { + store.dispatch(WebCompatReporterAction.CancelClicked) + }, + ) - Spacer(modifier = Modifier.width(10.dp)) - - FilledButton( - text = stringResource(id = R.string.webcompat_reporter_send), - modifier = Modifier - .wrapContentSize() - .semantics { - testTagsAsResourceId = true - testTag = BROKEN_SITE_REPORTER_SEND_BUTTON - }, - enabled = state.isSubmitEnabled, - ) { - store.dispatch(WebCompatReporterAction.SendReportClicked) - } - } + // Note: the "Add more info" button is not meant for Release, so we're only + // enabling it in Beta and Nightly/Debug + if (Config.channel.isBeta || Config.channel.isNightlyOrDebug) { + Spacer(modifier = Modifier.height(16.dp)) + + Text( + text = stringResource(id = R.string.webcompat_reporter_add_more_info), + modifier = Modifier + .fillMaxWidth() + .clickable { + store.dispatch(WebCompatReporterAction.AddMoreInfoClicked) + }, + style = FirefoxTheme.typography.body2.copy(textAlign = TextAlign.Center), + color = MaterialTheme.colorScheme.tertiary, + textDecoration = TextDecoration.Underline, + ) } } } if (previewSheetVisible) { - WebCompatReporterPreviewSheet( - previewJSON = state.previewJSON, - onDismissRequest = { previewSheetVisible = false }, - onSendClick = { store.dispatch(WebCompatReporterAction.SendReportClicked) }, - isSendButtonEnabled = state.isSubmitEnabled, - ) - } + WebCompatReporterPreviewSheet( + previewJSON = state.previewJSON, + onDismissRequest = { previewSheetVisible = false }, + onSendClick = { store.dispatch(WebCompatReporterAction.SendReportClicked) }, + isSendButtonEnabled = state.isSubmitEnabled, + ) } +} /** * Helper function used to obtain the list of dropdown menu items derived from [BrokenSiteReason].