commit 0ac9851f6db6ae3d45105ee76c5f574acc84deb0
parent 6ca22829a6910fcfebe112ff5cf26e9276ba0313
Author: Iván Ávalos <avalos@disroot.org>
Date: Wed, 29 Apr 2026 23:16:54 +0200
[wallet] improve transaction list alignment + use Unicode minus for negative amounts
Diffstat:
18 files changed, 58 insertions(+), 37 deletions(-)
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsComposable.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsComposable.kt
@@ -22,12 +22,15 @@ import androidx.compose.foundation.clickable
import androidx.compose.foundation.combinedClickable
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.IntrinsicSize
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.consumeWindowInsets
import androidx.compose.foundation.layout.defaultMinSize
+import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.lazy.items
@@ -72,6 +75,7 @@ import net.taler.wallet.balances.ScopeInfo.Exchange
import net.taler.wallet.cleanExchange
import net.taler.wallet.compose.Banner
import net.taler.wallet.compose.LoadingScreen
+import net.taler.wallet.compose.NewMenuItem
import net.taler.wallet.compose.TalerSurface
import net.taler.wallet.compose.cardPaddings
import net.taler.wallet.main.ViewMode
@@ -281,6 +285,7 @@ fun TransactionRow(
Column {
ListItem(
modifier = Modifier
+ .height(IntrinsicSize.Min)
.defaultMinSize(minHeight = 80.dp)
.combinedClickable(
onClick = onTransactionClick,
@@ -291,7 +296,9 @@ fun TransactionRow(
),
trailingContent = {
Box(
- modifier = Modifier.padding(8.dp),
+ modifier = Modifier
+ .fillMaxHeight()
+ .padding(8.dp),
contentAlignment = Center,
) {
TransactionAmountInfo(tx, spec)
@@ -299,7 +306,9 @@ fun TransactionRow(
},
leadingContent = {
Box(
- modifier = Modifier.padding(8.dp),
+ modifier = Modifier
+ .fillMaxHeight()
+ .padding(8.dp),
contentAlignment = Center,
) {
if (!selectionMode) {
@@ -320,16 +329,26 @@ fun TransactionRow(
}
},
headlineContent = {
- Text(
- tx.getTitle(),
- modifier = Modifier.padding(vertical = 3.dp),
- style = MaterialTheme.typography.titleMedium,
- )
- },
- supportingContent = {
- TransactionExtraInfo(tx)
+ Column(Modifier.padding(vertical = 8.dp)) {
+ Text(
+ text = tx.timestamp.ms.toRelativeTime(LocalContext.current).toString(),
+ style = MaterialTheme.typography.labelSmall,
+ color = MaterialTheme.colorScheme.onSurfaceVariant,
+ )
+ Text(
+ tx.getTitle(),
+ modifier = Modifier.padding(vertical = 3.dp),
+ style = MaterialTheme.typography.titleMedium,
+ )
+ ProvideTextStyle(
+ MaterialTheme.typography.bodyMedium.copy(
+ color = MaterialTheme.colorScheme.onSurfaceVariant
+ )
+ ) {
+ TransactionExtraInfo(tx)
+ }
+ }
},
- overlineContent = { Text(tx.timestamp.ms.toRelativeTime(LocalContext.current).toString()) },
colors = ListItemDefaults.colors(
containerColor = if (isSelected) {
MaterialTheme.colorScheme.secondaryContainer
diff --git a/wallet/src/main/res/values-ar/strings.xml b/wallet/src/main/res/values-ar/strings.xml
@@ -19,7 +19,7 @@
<string name="error_unsupported_uri">خطأ: مُعرّف الموارد الموحد لنظام URI غير معتمد.</string>
<string name="host_apdu_service_desc">مدفوعات الاتصال قريب المدى لنظام Taler</string>
<string name="amount_positive">%s +</string>
- <string name="amount_negative">%s -</string>
+ <string name="amount_negative">%s −</string>
<string name="amount_chosen">المبلغ المختار</string>
<string name="transactions_title">المعاملات</string>
<string name="transactions_empty">ليس لديك معاملات</string>
diff --git a/wallet/src/main/res/values-ca/strings.xml b/wallet/src/main/res/values-ca/strings.xml
@@ -38,7 +38,7 @@
<string name="menu_settings">Paràmetres</string>
<string name="host_apdu_service_desc">Pagaments de Taler per NFC</string>
<string name="amount_positive">+%s</string>
- <string name="amount_negative">-%s</string>
+ <string name="amount_negative">−%s</string>
<string name="amount_chosen">Quantitat escollida</string>
<string name="transactions_title">Transaccions</string>
<string name="transactions_balance">Saldo</string>
@@ -238,7 +238,7 @@
<string name="amount_invoiced">Quantitat demanada</string>
<string name="amount_lost">Quantitat perduda</string>
<string name="amount_total_label">Total:</string>
- <string name="balances_outbound_amount">-%1$s sortint</string>
+ <string name="balances_outbound_amount">−%1$s sortint</string>
<string name="transaction_peer_push_credit_pending">Rebent</string>
<string name="transaction_peer_push_debit_pending">Enviant</string>
<string name="transactions_delete_selected_dialog_title">Esborrar transaccions</string>
diff --git a/wallet/src/main/res/values-de/strings.xml b/wallet/src/main/res/values-de/strings.xml
@@ -99,7 +99,7 @@
\n%s</string>
<string name="exchange_tos_error">Fehler beim Anzeigen der AGB: %1$s</string>
<string name="settings_version_protocol_exchange">Unterstützte Exchange-Versionen</string>
- <string name="amount_negative">- %s</string>
+ <string name="amount_negative">−%s</string>
<string name="amount_positive">+%s</string>
<string name="exchange_add_url">Adresse des Zahlungsdienstleisters eingeben</string>
<string name="button_back">Zurück</string>
@@ -223,7 +223,7 @@
<string name="amount_transfer">Betrag</string>
<string name="balances_empty_withdraw_kudos_button">Demo-Geld erhalten</string>
<string name="balances_inbound_amount">+%1$s eingehend</string>
- <string name="balances_outbound_amount">-%1$s abgehend</string>
+ <string name="balances_outbound_amount">−%1$s abgehend</string>
<string name="transaction_deposit_to">Einzahlung an %1$s</string>
<string name="transaction_peer_push_credit">Erhalten</string>
<string name="transaction_state_aborted">Die Transaktion wurde abgebrochen</string>
diff --git a/wallet/src/main/res/values-es/strings.xml b/wallet/src/main/res/values-es/strings.xml
@@ -87,7 +87,7 @@
<string name="nav_error">Error</string>
<string name="uri_invalid">Dirección taler:// inválida</string>
<string name="offline">La operación requiere de acceso a Internet. Por favor asegúrate que tu conexión a Internet funcione y prueba de nuevo.</string>
- <string name="amount_negative">-%s</string>
+ <string name="amount_negative">−%s</string>
<string name="transactions_title">Transacciones</string>
<string name="transactions_error">No se pudo cargar las transacciones
\n
@@ -218,7 +218,7 @@
<string name="amount_send">Monto a enviar</string>
<string name="amount_total">Monto total</string>
<string name="amount_total_label">Total:</string>
- <string name="balances_outbound_amount">-%1$s saliente</string>
+ <string name="balances_outbound_amount">−%1$s saliente</string>
<string name="amount_invoiced">Monto cobrado</string>
<string name="amount_transfer">Transferir</string>
<string name="transaction_deposit_to">Depósito a %1$s</string>
diff --git a/wallet/src/main/res/values-fi/strings.xml b/wallet/src/main/res/values-fi/strings.xml
@@ -44,7 +44,7 @@
<string name="menu_settings">Asetukset</string>
<string name="host_apdu_service_desc">Taler NFC maksut</string>
<string name="amount_positive">+%s</string>
- <string name="amount_negative">-%s</string>
+ <string name="amount_negative">−%s</string>
<string name="amount_chosen">Valittu summa</string>
<string name="amount_sent">Summa lähetetty</string>
<string name="amount_received">Summa saatu</string>
diff --git a/wallet/src/main/res/values-fr/strings.xml b/wallet/src/main/res/values-fr/strings.xml
@@ -25,7 +25,7 @@
<string name="transaction_refresh">Frais de change pour la monnaie expirée</string>
<string name="payment_fee">+%s frais de transaction</string>
<string name="payment_button_confirm">Confirmer le paiement</string>
- <string name="amount_negative">-%s</string>
+ <string name="amount_negative">−%s</string>
<string name="nav_prompt_withdraw">Retirer depuis un compte bancaire</string>
<string name="nav_exchange_tos">Conditions générales d\'utilisation du service d\'échange</string>
<string name="nav_error">Erreur</string>
@@ -247,7 +247,7 @@
<string name="balance_scope_auditor">Auditeur : %1$s</string>
<string name="balances_empty_withdraw_kudos_message">Obtenez de l\'argent fictif pour découvrir comment payer avec de l\'argent numérique.</string>
<string name="balances_inbound_amount">+%1$s entrant</string>
- <string name="balances_outbound_amount">-%1$s sortant</string>
+ <string name="balances_outbound_amount">−%1$s sortant</string>
<string name="exchange_delete_force">Forcer la suppression (purge)</string>
<string name="payment_template_error">Erreur de création de la commande</string>
<string name="reload">Recharger</string>
diff --git a/wallet/src/main/res/values-gl/strings.xml b/wallet/src/main/res/values-gl/strings.xml
@@ -70,7 +70,7 @@
<string name="amount_invalid">Cantidade non válida</string>
<string name="amount_invoiced">Cantidade solicitada</string>
<string name="amount_lost">Cantidade perdida</string>
- <string name="amount_negative">-%s</string>
+ <string name="amount_negative">−%s</string>
<string name="amount_excess">A cantidade excede o máximo de %1$s</string>
<string name="amount_positive">+%s</string>
<string name="amount_receive">Cantidade a recibir</string>
@@ -86,7 +86,7 @@
<string name="balance_scope_auditor">Auditoría: %1$s</string>
<string name="balance_scope_exchange">De %1$s</string>
<string name="balances_inbound_amount">+%1$s entrante</string>
- <string name="balances_outbound_amount">-%1$s saínte</string>
+ <string name="balances_outbound_amount">−%1$s saínte</string>
<!-- Transactions -->
<string name="transaction_denom_loss">Perda de fondos</string>
diff --git a/wallet/src/main/res/values-it/strings.xml b/wallet/src/main/res/values-it/strings.xml
@@ -18,7 +18,7 @@
<string name="menu_settings">Impostazioni</string>
<string name="host_apdu_service_desc">Pagamenti Taler NFC</string>
<string name="amount_positive">+ %s</string>
- <string name="amount_negative">- %s</string>
+ <string name="amount_negative">− %s</string>
<string name="amount_chosen">Quantità Scelta</string>
<string name="transactions_title">Transazioni</string>
<string name="transactions_empty">Non hai nessuna transazione</string>
diff --git a/wallet/src/main/res/values-iw/strings.xml b/wallet/src/main/res/values-iw/strings.xml
@@ -83,7 +83,7 @@
<string name="amount_invalid">הסכום אינו תקין</string>
<string name="amount_invoiced">נדרש סכום</string>
<string name="amount_lost">הסכום שאבד</string>
- <string name="amount_negative">-%s</string>
+ <string name="amount_negative">−%s</string>
<string name="amount_excess">הסכום גבוה מהמקסימום העומד על %1$s</string>
<string name="amount_positive">+%s</string>
<string name="amount_receive">סכום לקבל</string>
@@ -99,7 +99,7 @@
<string name="balance_scope_auditor">רואה חשבון: %1$s</string>
<string name="balance_scope_exchange">מאת %1$s</string>
<string name="balances_inbound_amount">+%1$s נכנסים</string>
- <string name="balances_outbound_amount">-%1$s יוצאים</string>
+ <string name="balances_outbound_amount">−%1$s יוצאים</string>
<!-- Transactions -->
<string name="transaction_action_kyc">זיהוי והכרת הלקוח (KYC) שלם</string>
diff --git a/wallet/src/main/res/values-ja/strings.xml b/wallet/src/main/res/values-ja/strings.xml
@@ -25,7 +25,7 @@
<string name="error_unsupported_uri">誤り:この通貨URIはサポートされていません。</string>
<string name="menu_settings">設定</string>
<string name="amount_positive">+ %s</string>
- <string name="amount_negative">- %s</string>
+ <string name="amount_negative">− %s</string>
<string name="amount_chosen">選択した金額</string>
<string name="transactions_title">取引履歴</string>
<string name="transactions_empty">あなたは、取引履歴を持っていません</string>
diff --git a/wallet/src/main/res/values-ko/strings.xml b/wallet/src/main/res/values-ko/strings.xml
@@ -23,7 +23,7 @@
<string name="menu_settings">설정</string>
<string name="host_apdu_service_desc">탈러 NFC 결제</string>
<string name="amount_positive">+ %s</string>
- <string name="amount_negative">- %s</string>
+ <string name="amount_negative">− %s</string>
<string name="amount_chosen">선택한 금액</string>
<string name="transactions_title">거래</string>
<string name="transactions_empty">거래가 없습니다</string>
diff --git a/wallet/src/main/res/values-pt/strings.xml b/wallet/src/main/res/values-pt/strings.xml
@@ -15,7 +15,7 @@
<string name="menu_settings">Configurações</string>
<string name="host_apdu_service_desc">Pagamentos Taler NFC</string>
<string name="amount_positive">+ %s</string>
- <string name="amount_negative">- %s</string>
+ <string name="amount_negative">− %s</string>
<string name="amount_chosen">Quantidade Selecionada</string>
<string name="transactions_title">Transações</string>
<string name="transactions_empty">Não tem quaisquer transações</string>
diff --git a/wallet/src/main/res/values-ru/strings.xml b/wallet/src/main/res/values-ru/strings.xml
@@ -36,7 +36,7 @@
<string name="payment_balance_insufficient">Недостаточно средств на балансе!</string>
<string name="nav_exchange_tos">Условия оказания услуг биржей</string>
<string name="paste_invalid">Неверный тип данных в буфере обмена</string>
- <string name="amount_negative">- %s</string>
+ <string name="amount_negative">− %s</string>
<string name="payment_fee">+%s комиссия за платёж</string>
<string name="transaction_refresh">Комиссия за обмен монет с истёкшим сроком годности</string>
<string name="google_play_short_desc" tools:keep="@string/google_play_short_desc">GNU Taler помогает осуществлять удобные и безопасные онлайн-транзакции быстро и просто.</string>
diff --git a/wallet/src/main/res/values-sv/strings.xml b/wallet/src/main/res/values-sv/strings.xml
@@ -19,7 +19,7 @@
<string name="menu_settings">Inställningar</string>
<string name="host_apdu_service_desc">Taler NFC-betalningar</string>
<string name="amount_positive">+ %s</string>
- <string name="amount_negative">- %s</string>
+ <string name="amount_negative">− %s</string>
<string name="amount_chosen">Valt belopp</string>
<string name="transactions_title">Transaktioner</string>
<string name="transactions_empty">Du har inga transaktioner</string>
diff --git a/wallet/src/main/res/values-tr/strings.xml b/wallet/src/main/res/values-tr/strings.xml
@@ -19,7 +19,7 @@
<string name="error_unsupported_uri">Hata: Bu Taler URI\'si desteklenmiyor.</string>
<string name="host_apdu_service_desc">Taler NFC ödemeleri</string>
<string name="amount_positive">+. %s</string>
- <string name="amount_negative">-. %s</string>
+ <string name="amount_negative">−. %s</string>
<string name="amount_chosen">Seçilen miktar</string>
<string name="transactions_title">İşlemler</string>
<string name="transactions_empty">Herhangi bir işleminiz bulunmamaktadır</string>
@@ -244,7 +244,7 @@
<string name="share_payment">Ödeme bağlantısını paylaş</string>
<string name="amount_transfer">Aktar</string>
<string name="balances_inbound_amount">+%1$s gelen</string>
- <string name="balances_outbound_amount">-%1$s giden</string>
+ <string name="balances_outbound_amount">−%1$s giden</string>
<string name="transaction_deposit">Yatır</string>
<string name="amount_fee">Hizmet bedeli</string>
<string name="amount_invalid">Miktar geçersiz</string>
diff --git a/wallet/src/main/res/values-uk/strings.xml b/wallet/src/main/res/values-uk/strings.xml
@@ -63,7 +63,7 @@
<string name="amount_invalid">Недійсна сума</string>
<string name="amount_invoiced">Сума виставленого рахунку</string>
<string name="amount_lost">Втрачена сума</string>
- <string name="amount_negative">-%s</string>
+ <string name="amount_negative">−%s</string>
<string name="amount_excess">Сума перевищує максимум%1$s</string>
<string name="amount_positive">+%s</string>
<string name="amount_receive">Сума до отримання</string>
@@ -79,7 +79,7 @@
<string name="balance_scope_auditor">Аудитор: %1$s</string>
<string name="balance_scope_exchange">Від %1$s</string>
<string name="balances_inbound_amount">+%1$s надійшло</string>
- <string name="balances_outbound_amount">-%1$s витрачено</string>
+ <string name="balances_outbound_amount">−%1$s витрачено</string>
<!-- Transactions -->
<string name="transaction_action_kyc">Завершити KYC</string>
diff --git a/wallet/src/main/res/values/strings.xml b/wallet/src/main/res/values/strings.xml
@@ -116,7 +116,8 @@ GNU Taler is immune to many types of fraud such as credit card data theft, phish
<string name="amount_invalid">Amount invalid</string>
<string name="amount_invoiced">Amount requested</string>
<string name="amount_lost">Amount lost</string>
- <string name="amount_negative">-%s</string>
+ <!-- must be minus sign! (− U+2212) -->
+ <string name="amount_negative">−%s</string>
<string name="amount_excess">Amount exceeds maximum of %1$s</string>
<string name="amount_positive">+%s</string>
<string name="amount_receive">Amount to receive</string>
@@ -138,7 +139,8 @@ GNU Taler is immune to many types of fraud such as credit card data theft, phish
<string name="balances_empty_withdraw_kudos_button">Get demo cash</string>
<string name="balances_empty_withdraw_kudos_message">Get demo cash to experience how to pay with digital cash.</string>
<string name="balances_inbound_amount">+%1$s incoming</string>
- <string name="balances_outbound_amount">-%1$s outgoing</string>
+ <!-- must be minus sign! (− U+2212) -->
+ <string name="balances_outbound_amount">−%1$s outgoing</string>
<string name="balances_section_statements">Donation statements</string>
<string name="balances_title">Balances</string>