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:
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].