taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

commit 2c32ba6197a4e0d066180df32a64cbb69b262aec
parent 8c9db6054c84782286b8d6b2ab0a202b4f14947c
Author: Iván Ávalos <avalos@disroot.org>
Date:   Fri,  5 Dec 2025 15:33:39 +0100

[wallet] improvements to error screen

Diffstat:
Mwallet/src/main/java/net/taler/wallet/compose/ErrorComposable.kt | 74++++++++++++++++++++++++++++++++++++++++++--------------------------------
Mwallet/src/main/res/values/strings.xml | 1+
2 files changed, 43 insertions(+), 32 deletions(-)

diff --git a/wallet/src/main/java/net/taler/wallet/compose/ErrorComposable.kt b/wallet/src/main/java/net/taler/wallet/compose/ErrorComposable.kt @@ -25,9 +25,11 @@ import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.material.icons.Icons import androidx.compose.material.icons.filled.Close -import androidx.compose.material.icons.filled.ErrorOutline +import androidx.compose.material.icons.rounded.ErrorOutline import androidx.compose.material3.Button import androidx.compose.material3.ButtonDefaults +import androidx.compose.material3.Card +import androidx.compose.material3.CardDefaults import androidx.compose.material3.Icon import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text @@ -61,10 +63,10 @@ fun ErrorComposable( verticalArrangement = Arrangement.Center, ) { Icon( - Icons.Default.ErrorOutline, + Icons.Rounded.ErrorOutline, modifier = Modifier - .size(120.dp) - .padding(bottom = 8.dp), + .size(85.dp) + .padding(bottom = 5.dp), contentDescription = null, tint = MaterialTheme.colorScheme.error, ) @@ -83,38 +85,46 @@ fun ErrorComposable( json.encodeToString(error) } - Text( - modifier = Modifier.padding(bottom = 16.dp), - style = MaterialTheme.typography.bodyLarge, - text = if (!devMode) { - error.userFacingMsg - } else jsonError, - fontFamily = if (devMode) { - FontFamily.Monospace - } else { - FontFamily.Default - }, - textAlign = if (devMode) { - TextAlign.Start - } else { - TextAlign.Center + if (devMode) { + Card(Modifier + .fillMaxWidth()) { + Text( + modifier = Modifier.padding(16.dp), + text = jsonError, + style = MaterialTheme.typography.bodyMedium, + color = CardDefaults.cardColors().contentColor, + fontFamily = FontFamily.Monospace, + textAlign = TextAlign.Start, + ) } - ) + } else { + Text( + text = error.userFacingMsg, + fontFamily = FontFamily.Default, + textAlign = TextAlign.Center, + ) + } - Row( - modifier = Modifier - .padding(bottom = 16.dp) - .fillMaxWidth(), - horizontalArrangement = Arrangement.SpaceEvenly, + Column(Modifier + .padding(bottom = 16.dp, top = 22.dp) + .fillMaxWidth(), + horizontalAlignment = CenterHorizontally, ) { - CopyToClipboardButton( - label = "Error", - content = jsonError, - ) + Text(stringResource(R.string.error_export), + modifier = Modifier.padding(bottom = 12.dp), + style = MaterialTheme.typography.titleMedium) + Row(Modifier.fillMaxWidth(), + horizontalArrangement = Arrangement.SpaceEvenly, + ) { + CopyToClipboardButton( + label = "Error", + content = jsonError, + ) - ShareButton( - content = jsonError, - ) + ShareButton( + content = jsonError, + ) + } } if (onClose != null) Button( diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml @@ -64,6 +64,7 @@ GNU Taler is immune to many types of fraud such as credit card data theft, phish <string name="enter_uri">Enter taler:// URI</string> <string name="enter_uri_label">Enter URI</string> <string name="error">Error</string> + <string name="error_export">Export error diagnostics</string> <string name="import_db">Import</string> <string name="loading">Loading</string> <string name="menu">Menu</string>