gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-taler-android] 02/02: [wallet] Show more deposit info in transact


From: gnunet
Subject: [taler-taler-android] 02/02: [wallet] Show more deposit info in transaction list item
Date: Thu, 03 Nov 2022 15:51:04 +0100

This is an automated email from the git hooks/post-receive script.

torsten-grote pushed a commit to branch master
in repository taler-android.

commit 074032c61a41b275a32bcebc1ebf280ceb20aeef
Author: Torsten Grote <t@grobox.de>
AuthorDate: Thu Nov 3 11:47:20 2022 -0300

    [wallet] Show more deposit info in transaction list item
---
 .../wallet/deposit/TransactionDepositComposable.kt | 95 ++++++++++++++++++++++
 .../transactions/DeleteTransactionComposable.kt    | 55 +++++++++++++
 .../transactions/TransactionDepositFragment.kt     | 61 +-------------
 .../wallet/transactions/TransactionPeerFragment.kt | 26 +-----
 4 files changed, 152 insertions(+), 85 deletions(-)

diff --git 
a/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt 
b/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt
new file mode 100644
index 0000000..aa75c56
--- /dev/null
+++ 
b/wallet/src/main/java/net/taler/wallet/deposit/TransactionDepositComposable.kt
@@ -0,0 +1,95 @@
+/*
+ * This file is part of GNU Taler
+ * (C) 2022 Taler Systems S.A.
+ *
+ * GNU Taler is free software; you can redistribute it and/or modify it under 
the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3, or (at your option) any later version.
+ *
+ * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+ * A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+package net.taler.wallet.deposit
+
+import androidx.compose.foundation.layout.Column
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.rememberScrollState
+import androidx.compose.foundation.verticalScroll
+import androidx.compose.material.MaterialTheme
+import androidx.compose.material.Surface
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.tooling.preview.Preview
+import androidx.compose.ui.unit.dp
+import net.taler.common.Amount
+import net.taler.common.Timestamp
+import net.taler.common.toAbsoluteTime
+import net.taler.wallet.R
+import net.taler.wallet.transactions.AmountType
+import net.taler.wallet.transactions.DeleteTransactionComposable
+import net.taler.wallet.transactions.TransactionAmountComposable
+import net.taler.wallet.transactions.TransactionDeposit
+
+@Composable
+fun TransactionDepositComposable(t: TransactionDeposit, onDelete: () -> Unit) {
+    val scrollState = rememberScrollState()
+    Column(
+        modifier = Modifier
+            .fillMaxWidth()
+            .verticalScroll(scrollState),
+        horizontalAlignment = Alignment.CenterHorizontally,
+    ) {
+        val context = LocalContext.current
+        Text(
+            modifier = Modifier.padding(16.dp),
+            text = t.timestamp.ms.toAbsoluteTime(context).toString(),
+            style = MaterialTheme.typography.body1,
+        )
+        TransactionAmountComposable(
+            label = stringResource(id = R.string.transaction_paid),
+            amount = t.amountEffective,
+            amountType = AmountType.Negative,
+        )
+        TransactionAmountComposable(
+            label = stringResource(id = R.string.transaction_order_total),
+            amount = t.amountRaw,
+            amountType = AmountType.Neutral,
+        )
+        val fee = t.amountEffective - t.amountRaw
+        if (!fee.isZero()) {
+            TransactionAmountComposable(
+                label = stringResource(id = R.string.withdraw_fees),
+                amount = fee,
+                amountType = AmountType.Negative,
+            )
+        }
+        DeleteTransactionComposable(onDelete)
+    }
+}
+
+@Preview
+@Composable
+fun TransactionDepositComposablePreview() {
+    val t = TransactionDeposit(
+        transactionId = "transactionId",
+        timestamp = Timestamp(System.currentTimeMillis() - 360 * 60 * 1000),
+        pending = true,
+        depositGroupId = "fooBar",
+        amountRaw = Amount.fromDouble("TESTKUDOS", 42.1337),
+        amountEffective = Amount.fromDouble("TESTKUDOS", 42.23),
+        targetPaytoUri = "https://exchange.example.org/peer/pull/credit";,
+    )
+    Surface {
+        TransactionDepositComposable(t) {}
+    }
+}
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/DeleteTransactionComposable.kt
 
b/wallet/src/main/java/net/taler/wallet/transactions/DeleteTransactionComposable.kt
new file mode 100644
index 0000000..7b69e2b
--- /dev/null
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/DeleteTransactionComposable.kt
@@ -0,0 +1,55 @@
+/*
+ * This file is part of GNU Taler
+ * (C) 2022 Taler Systems S.A.
+ *
+ * GNU Taler is free software; you can redistribute it and/or modify it under 
the
+ * terms of the GNU General Public License as published by the Free Software
+ * Foundation; either version 3, or (at your option) any later version.
+ *
+ * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS 
FOR
+ * A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License along with
+ * GNU Taler; see the file COPYING.  If not, see <http://www.gnu.org/licenses/>
+ */
+
+package net.taler.wallet.transactions
+
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.padding
+import androidx.compose.material.Button
+import androidx.compose.material.ButtonDefaults
+import androidx.compose.material.Icon
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.dp
+import net.taler.wallet.R
+
+@Composable
+fun DeleteTransactionComposable(onDelete: () -> Unit) {
+    Button(
+        modifier = Modifier.padding(16.dp),
+        colors = ButtonDefaults.buttonColors(backgroundColor = 
colorResource(R.color.red)),
+        onClick = onDelete,
+    ) {
+        Row(verticalAlignment = Alignment.CenterVertically) {
+            Icon(
+                painter = painterResource(id = R.drawable.ic_delete),
+                contentDescription = null,
+                tint = Color.White,
+            )
+            Text(
+                modifier = Modifier.padding(start = 8.dp),
+                text = stringResource(R.string.transactions_delete),
+                color = Color.White,
+            )
+        }
+    }
+}
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDepositFragment.kt
 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDepositFragment.kt
index f721090..5443942 100644
--- 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionDepositFragment.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionDepositFragment.kt
@@ -20,32 +20,10 @@ import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
-import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Row
-import androidx.compose.foundation.layout.fillMaxWidth
-import androidx.compose.foundation.layout.padding
-import androidx.compose.foundation.rememberScrollState
-import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.ButtonDefaults
-import androidx.compose.material.Icon
-import androidx.compose.material.MaterialTheme
 import androidx.compose.material.Surface
-import androidx.compose.material.Text
-import androidx.compose.runtime.Composable
-import androidx.compose.ui.Alignment.Companion.CenterHorizontally
-import androidx.compose.ui.Alignment.Companion.CenterVertically
-import androidx.compose.ui.Modifier
-import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.platform.ComposeView
-import androidx.compose.ui.platform.LocalContext
-import androidx.compose.ui.res.colorResource
-import androidx.compose.ui.res.painterResource
-import androidx.compose.ui.res.stringResource
-import androidx.compose.ui.unit.dp
 import com.google.android.material.composethemeadapter.MdcTheme
-import net.taler.common.toAbsoluteTime
-import net.taler.wallet.R
+import net.taler.wallet.deposit.TransactionDepositComposable
 
 class TransactionDepositFragment : TransactionDetailFragment() {
 
@@ -66,40 +44,3 @@ class TransactionDepositFragment : 
TransactionDetailFragment() {
         }
     }
 }
-
-@Composable
-fun TransactionDepositComposable(t: TransactionDeposit, onDelete: () -> Unit) {
-    val scrollState = rememberScrollState()
-    Column(
-        modifier = Modifier
-            .fillMaxWidth()
-            .verticalScroll(scrollState),
-        horizontalAlignment = CenterHorizontally,
-    ) {
-        val context = LocalContext.current
-        Text(
-            modifier = Modifier.padding(16.dp),
-            text = t.timestamp.ms.toAbsoluteTime(context).toString(),
-            style = MaterialTheme.typography.body1,
-        )
-        // TODO
-        Button(
-            modifier = Modifier.padding(16.dp),
-            colors = ButtonDefaults.buttonColors(backgroundColor = 
colorResource(R.color.red)),
-            onClick = onDelete,
-        ) {
-            Row(verticalAlignment = CenterVertically) {
-                Icon(
-                    painter = painterResource(id = R.drawable.ic_delete),
-                    contentDescription = null,
-                    tint = Color.White,
-                )
-                Text(
-                    modifier = Modifier.padding(start = 8.dp),
-                    text = stringResource(R.string.transactions_delete),
-                    color = Color.White,
-                )
-            }
-        }
-    }
-}
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
index 749ec30..b03eb39 100644
--- 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
@@ -21,27 +21,20 @@ import android.view.LayoutInflater
 import android.view.View
 import android.view.ViewGroup
 import androidx.compose.foundation.layout.Column
-import androidx.compose.foundation.layout.Row
 import androidx.compose.foundation.layout.fillMaxWidth
 import androidx.compose.foundation.layout.padding
 import androidx.compose.foundation.rememberScrollState
 import androidx.compose.foundation.verticalScroll
-import androidx.compose.material.Button
-import androidx.compose.material.ButtonDefaults
-import androidx.compose.material.Icon
 import androidx.compose.material.MaterialTheme
 import androidx.compose.material.Surface
 import androidx.compose.material.Text
 import androidx.compose.runtime.Composable
 import androidx.compose.ui.Alignment.Companion.CenterHorizontally
-import androidx.compose.ui.Alignment.Companion.CenterVertically
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
 import androidx.compose.ui.platform.ComposeView
 import androidx.compose.ui.platform.LocalContext
 import androidx.compose.ui.res.colorResource
-import androidx.compose.ui.res.painterResource
-import androidx.compose.ui.res.stringResource
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
 import com.google.android.material.composethemeadapter.MdcTheme
@@ -95,24 +88,7 @@ fun TransactionPeerComposable(t: Transaction, onDelete: () 
-> Unit) {
             is TransactionPeerPushDebit -> 
TransactionPeerPushDebitComposable(t)
             else -> error("unexpected transaction: ${t::class.simpleName}")
         }
-        Button(
-            modifier = Modifier.padding(16.dp),
-            colors = ButtonDefaults.buttonColors(backgroundColor = 
colorResource(R.color.red)),
-            onClick = onDelete,
-        ) {
-            Row(verticalAlignment = CenterVertically) {
-                Icon(
-                    painter = painterResource(id = R.drawable.ic_delete),
-                    contentDescription = null,
-                    tint = Color.White,
-                )
-                Text(
-                    modifier = Modifier.padding(start = 8.dp),
-                    text = stringResource(R.string.transactions_delete),
-                    color = Color.White,
-                )
-            }
-        }
+        DeleteTransactionComposable(onDelete)
     }
 }
 

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]