gnunet-svn
[Top][All Lists]
Advanced

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

[taler-taler-android] 02/05: [wallet] Migrated payment and refund detail


From: gnunet
Subject: [taler-taler-android] 02/05: [wallet] Migrated payment and refund detail to Compose
Date: Thu, 13 Apr 2023 16:34:09 +0200

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 5a9174fda280a87cef83d16a3430aae9e388bc0b
Author: Iván Ávalos <avalos@disroot.org>
AuthorDate: Tue Apr 11 13:40:25 2023 -0600

    [wallet] Migrated payment and refund detail to Compose
---
 .../wallet/payment/TransactionPaymentComposable.kt | 196 +++++++++++++++++++++
 .../transactions/TransactionPaymentFragment.kt     |  52 ++----
 .../wallet/transactions/TransactionPeerFragment.kt |  38 ++++
 .../transactions/TransactionRefundFragment.kt      |  57 ++----
 .../res/layout/fragment_transaction_payment.xml    | 149 ----------------
 wallet/src/main/res/navigation/nav_graph.xml       |   9 +-
 6 files changed, 271 insertions(+), 230 deletions(-)

diff --git 
a/wallet/src/main/java/net/taler/wallet/payment/TransactionPaymentComposable.kt 
b/wallet/src/main/java/net/taler/wallet/payment/TransactionPaymentComposable.kt
new file mode 100644
index 0000000..d2a88f6
--- /dev/null
+++ 
b/wallet/src/main/java/net/taler/wallet/payment/TransactionPaymentComposable.kt
@@ -0,0 +1,196 @@
+/*
+ * This file is part of GNU Taler
+ * (C) 2023 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.payment
+
+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.material3.MaterialTheme
+import androidx.compose.material3.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.ContractMerchant
+import net.taler.common.Timestamp
+import net.taler.common.toAbsoluteTime
+import net.taler.wallet.R
+import net.taler.wallet.backend.TalerErrorCode
+import net.taler.wallet.backend.TalerErrorInfo
+import net.taler.wallet.compose.TalerSurface
+import net.taler.wallet.transactions.AmountType
+import net.taler.wallet.transactions.DeleteTransactionComposable
+import net.taler.wallet.transactions.ErrorTransactionButton
+import net.taler.wallet.transactions.ExtendedStatus
+import net.taler.wallet.transactions.PaymentStatus
+import net.taler.wallet.transactions.Transaction
+import net.taler.wallet.transactions.TransactionAmountComposable
+import net.taler.wallet.transactions.TransactionInfo
+import net.taler.wallet.transactions.TransactionInfoComposable
+import net.taler.wallet.transactions.TransactionLinkComposable
+import net.taler.wallet.transactions.TransactionPayment
+import net.taler.wallet.transactions.TransactionRefund
+
+@Composable
+fun TransactionPaymentComposable(
+    t: Transaction,
+    devMode: Boolean?,
+    onFulfill: (url: String) -> Unit,
+    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.bodyLarge,
+        )
+        TransactionAmountComposable(
+            label = stringResource(id = when (t) {
+                is TransactionPayment -> R.string.transaction_paid
+                else -> R.string.transaction_refund
+            }),
+            amount = t.amountEffective,
+            amountType = when (t) {
+                is TransactionPayment -> AmountType.Negative
+                else -> AmountType.Positive
+            },
+        )
+        TransactionAmountComposable(
+            label = stringResource(id = R.string.transaction_order_total),
+            amount = t.amountRaw,
+            amountType = AmountType.Neutral,
+        )
+        TransactionAmountComposable(
+            label = stringResource(id = R.string.withdraw_fees),
+            amount = when (t) {
+                is TransactionPayment -> t.amountEffective - t.amountRaw
+                else -> t.amountRaw - t.amountEffective
+            },
+            amountType = AmountType.Negative,
+        )
+        when (t) {
+            is TransactionPayment -> t.info
+            is TransactionRefund -> t.info
+            else -> null
+        }?.let { info ->
+            PurchaseDetails(info = info) {
+                onFulfill(info.fulfillmentUrl!!)
+            }
+        }
+        DeleteTransactionComposable(onDelete)
+        if (devMode == true && t.error != null) {
+            ErrorTransactionButton(error = t.error!!)
+        }
+    }
+}
+
+@Composable
+fun PurchaseDetails(
+    info: TransactionInfo,
+    onClick: () -> Unit,
+) {
+    Column(
+        horizontalAlignment = Alignment.CenterHorizontally,
+    ) {
+        // Summary and fulfillment message
+        val text = if (info.fulfillmentMessage == null) {
+            info.summary
+        } else {
+            "${info.summary}\n\n${info.fulfillmentMessage}"
+        }
+        if (info.fulfillmentUrl != null) {
+            TransactionLinkComposable(
+                label = stringResource(id = R.string.transaction_order),
+                info = text,
+            ) { onClick() }
+        } else {
+            TransactionInfoComposable(
+                label = stringResource(id = R.string.transaction_order),
+                info = text,
+            )
+        }
+
+        // Order ID
+        Text(
+            stringResource(id = R.string.transaction_order_id, info.orderId),
+            style = MaterialTheme.typography.bodyMedium,
+        )
+    }
+}
+
+@Preview
+@Composable
+fun TransactionPaymentComposablePreview() {
+    val t = TransactionPayment(
+        transactionId = "transactionId",
+        timestamp = Timestamp.fromMillis(System.currentTimeMillis() - 360 * 60 
* 1000),
+        extendedStatus = ExtendedStatus.Pending,
+        info = TransactionInfo(
+            orderId = "123",
+            merchant = ContractMerchant(name = "Taler"),
+            summary = "Some Product that was bought and can have quite a long 
label",
+            fulfillmentMessage = "This is some fulfillment message",
+            fulfillmentUrl = "https://bank.demo.taler.net/";,
+            products = listOf(),
+        ),
+        status = PaymentStatus.Paid,
+        amountRaw = Amount.fromDouble("TESTKUDOS", 42.1337),
+        amountEffective = Amount.fromDouble("TESTKUDOS", 42.23),
+        error = TalerErrorInfo(code = 
TalerErrorCode.WALLET_WITHDRAWAL_KYC_REQUIRED),
+    )
+    TalerSurface {
+        TransactionPaymentComposable(t = t, devMode = true, onFulfill = {}) {}
+    }
+}
+
+@Preview
+@Composable
+fun TransactionRefundComposablePreview() {
+    val t = TransactionRefund(
+        transactionId = "transactionId",
+        timestamp = Timestamp.fromMillis(System.currentTimeMillis() - 360 * 60 
* 1000),
+        extendedStatus = ExtendedStatus.Pending,
+        info = TransactionInfo(
+            orderId = "123",
+            merchant = ContractMerchant(name = "Taler"),
+            summary = "Some Product that was bought and can have quite a long 
label",
+            fulfillmentMessage = "This is some fulfillment message",
+            fulfillmentUrl = "https://bank.demo.taler.net/";,
+            products = listOf(),
+        ),
+        refundedTransactionId = "transactionId",
+        amountRaw = Amount.fromDouble("TESTKUDOS", 42.23),
+        amountEffective = Amount.fromDouble("TESTKUDOS", 42.1337),
+        error = TalerErrorInfo(code = 
TalerErrorCode.WALLET_WITHDRAWAL_KYC_REQUIRED),
+    )
+    TalerSurface {
+        TransactionPaymentComposable(t = t, devMode = true, onFulfill = {}) {}
+    }
+}
\ No newline at end of file
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPaymentFragment.kt
 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPaymentFragment.kt
index 068a41e..ac35fe0 100644
--- 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPaymentFragment.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPaymentFragment.kt
@@ -19,50 +19,32 @@ package net.taler.wallet.transactions
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
-import android.view.View.VISIBLE
 import android.view.ViewGroup
-import net.taler.common.toAbsoluteTime
-import net.taler.wallet.databinding.FragmentTransactionPaymentBinding
+import androidx.compose.runtime.livedata.observeAsState
+import androidx.compose.ui.platform.ComposeView
+import net.taler.wallet.compose.TalerSurface
+import net.taler.wallet.launchInAppBrowser
+import net.taler.wallet.payment.TransactionPaymentComposable
 
 class TransactionPaymentFragment : TransactionDetailFragment() {
 
-    private lateinit var ui: FragmentTransactionPaymentBinding
-
     override fun onCreateView(
         inflater: LayoutInflater,
         container: ViewGroup?,
         savedInstanceState: Bundle?,
-    ): View {
-        ui = FragmentTransactionPaymentBinding.inflate(inflater, container, 
false)
-        return ui.root
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        transactionManager.selectedTransaction.observe(viewLifecycleOwner) { t 
->
-            if (t !is TransactionPayment) return@observe
-            ui.timeView.text = t.timestamp.ms.toAbsoluteTime(requireContext())
-
-            ui.amountPaidWithFeesView.text = t.amountEffective.toString()
-            val fee = t.amountEffective - t.amountRaw
-            bindOrderAndFee(
-                ui.orderSummaryView,
-                ui.orderAmountView,
-                ui.orderIdView,
-                ui.feeView,
-                t.info,
-                t.amountRaw,
-                fee
-            )
-            ui.deleteButton.setOnClickListener {
-                onDeleteButtonClicked(t)
-            }
-            if (devMode.value == true && t.error != null) {
-                ui.showErrorButton.visibility = VISIBLE
-                ui.showErrorButton.setOnClickListener {
-                    onShowErrorButtonClicked(t)
-                }
+    ): View = ComposeView(requireContext()).apply {
+        setContent {
+            TalerSurface {
+                val t = 
transactionManager.selectedTransaction.observeAsState().value
+                if (t is TransactionPayment) TransactionPaymentComposable(t, 
devMode.value,
+                    onFulfill = { url ->
+                        launchInAppBrowser(requireContext(), url)
+                    },
+                    onDelete = {
+                        onDeleteButtonClicked(t)
+                    }
+                )
             }
         }
     }
-
 }
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 297c937..170c719 100644
--- 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionPeerFragment.kt
@@ -24,6 +24,7 @@ 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.text.ClickableText
 import androidx.compose.foundation.verticalScroll
 import androidx.compose.material3.MaterialTheme
 import androidx.compose.material3.Text
@@ -35,12 +36,18 @@ 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.text.SpanStyle
+import androidx.compose.ui.text.TextStyle
+import androidx.compose.ui.text.buildAnnotatedString
+import androidx.compose.ui.text.style.TextAlign
+import androidx.compose.ui.text.withStyle
 import androidx.compose.ui.unit.dp
 import androidx.compose.ui.unit.sp
 import net.taler.common.Amount
 import net.taler.common.toAbsoluteTime
 import net.taler.wallet.R
 import net.taler.wallet.compose.TalerSurface
+import net.taler.wallet.getAttrColor
 import net.taler.wallet.peer.TransactionPeerPullCreditComposable
 import net.taler.wallet.peer.TransactionPeerPullDebitComposable
 import net.taler.wallet.peer.TransactionPeerPushCreditComposable
@@ -125,3 +132,34 @@ fun TransactionInfoComposable(label: String, info: String) 
{
         fontSize = 24.sp,
     )
 }
+
+@Composable
+fun TransactionLinkComposable(label: String, info: String, onClick: () -> 
Unit) {
+    Text(
+        modifier = Modifier.padding(top = 16.dp, start = 16.dp, end = 16.dp),
+        text = label,
+        style = MaterialTheme.typography.bodyMedium,
+    )
+    val context = LocalContext.current
+    val linkColor = Color(context.getAttrColor(android.R.attr.textColorLink))
+    val annotatedString = buildAnnotatedString {
+        pushStringAnnotation(tag = "url", annotation = info)
+        withStyle(style = SpanStyle(color = linkColor)) {
+            append(info)
+        }
+        pop()
+    }
+    ClickableText(
+        modifier = Modifier.padding(top = 8.dp, start = 16.dp, end = 16.dp, 
bottom = 16.dp),
+        text = annotatedString,
+        style = TextStyle(fontSize = 24.sp, textAlign = TextAlign.Center),
+    ) { offset ->
+        annotatedString.getStringAnnotations(
+            tag = "url",
+            start = offset,
+            end = offset,
+        ).firstOrNull()?.let {
+            onClick()
+        }
+    }
+}
\ No newline at end of file
diff --git 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionRefundFragment.kt
 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionRefundFragment.kt
index 9c30609..b4a3be8 100644
--- 
a/wallet/src/main/java/net/taler/wallet/transactions/TransactionRefundFragment.kt
+++ 
b/wallet/src/main/java/net/taler/wallet/transactions/TransactionRefundFragment.kt
@@ -19,55 +19,32 @@ package net.taler.wallet.transactions
 import android.os.Bundle
 import android.view.LayoutInflater
 import android.view.View
-import android.view.View.VISIBLE
 import android.view.ViewGroup
-import androidx.core.content.ContextCompat.getColor
-import net.taler.common.toAbsoluteTime
-import net.taler.wallet.R
-import net.taler.wallet.databinding.FragmentTransactionPaymentBinding
+import androidx.compose.runtime.livedata.observeAsState
+import androidx.compose.ui.platform.ComposeView
+import net.taler.wallet.compose.TalerSurface
+import net.taler.wallet.launchInAppBrowser
+import net.taler.wallet.payment.TransactionPaymentComposable
 
 class TransactionRefundFragment : TransactionDetailFragment() {
 
-    private lateinit var ui: FragmentTransactionPaymentBinding
-
     override fun onCreateView(
         inflater: LayoutInflater,
         container: ViewGroup?,
         savedInstanceState: Bundle?,
-    ): View {
-        ui = FragmentTransactionPaymentBinding.inflate(inflater, container, 
false)
-        return ui.root
-    }
-
-    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
-        transactionManager.selectedTransaction.observe(viewLifecycleOwner) { t 
->
-            if (t !is TransactionRefund) return@observe
-            ui.timeView.text = t.timestamp.ms.toAbsoluteTime(requireContext())
-
-            ui.amountPaidWithFeesLabel.text = 
getString(R.string.transaction_refund)
-            ui.amountPaidWithFeesView.setTextColor(getColor(requireContext(), 
R.color.green))
-            ui.amountPaidWithFeesView.text =
-                getString(R.string.amount_positive, 
t.amountEffective.toString())
-            val fee = t.amountRaw - t.amountEffective
-            bindOrderAndFee(
-                ui.orderSummaryView,
-                ui.orderAmountView,
-                ui.orderIdView,
-                ui.feeView,
-                t.info,
-                t.amountRaw,
-                fee
-            )
-            ui.deleteButton.setOnClickListener {
-                onDeleteButtonClicked(t)
-            }
-            if (devMode.value == true && t.error != null) {
-                ui.showErrorButton.visibility = VISIBLE
-                ui.showErrorButton.setOnClickListener {
-                    onShowErrorButtonClicked(t)
-                }
+    ): View = ComposeView(requireContext()).apply {
+        setContent {
+            TalerSurface {
+                val t = 
transactionManager.selectedTransaction.observeAsState().value
+                if (t is TransactionRefund) TransactionPaymentComposable(t, 
devMode.value,
+                    onFulfill = { url ->
+                        launchInAppBrowser(requireContext(), url)
+                    },
+                    onDelete = {
+                        onDeleteButtonClicked(t)
+                    }
+                )
             }
         }
     }
-
 }
diff --git a/wallet/src/main/res/layout/fragment_transaction_payment.xml 
b/wallet/src/main/res/layout/fragment_transaction_payment.xml
deleted file mode 100644
index 5b674bd..0000000
--- a/wallet/src/main/res/layout/fragment_transaction_payment.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?><!--
-  ~ This file is part of GNU Taler
-  ~ (C) 2020 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/>
-  -->
-
-<ScrollView xmlns:android="http://schemas.android.com/apk/res/android";
-    xmlns:app="http://schemas.android.com/apk/res-auto";
-    xmlns:tools="http://schemas.android.com/tools";
-    android:layout_width="match_parent"
-    android:layout_height="match_parent"
-    android:fillViewport="true"
-    tools:context=".transactions.TransactionDetailFragment">
-
-    <androidx.constraintlayout.widget.ConstraintLayout
-        android:layout_width="match_parent"
-        android:layout_height="wrap_content">
-
-        <TextView
-            android:id="@+id/timeView"
-            style="@style/TransactionLabel.Time"
-            app:layout_constraintBottom_toTopOf="@+id/amountPaidWithFeesLabel"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toTopOf="parent"
-            tools:text="23 March 2020 23:42pm" />
-
-        <TextView
-            android:id="@+id/amountPaidWithFeesLabel"
-            style="@style/TransactionLabel"
-            android:text="@string/transaction_paid"
-            app:layout_constraintBottom_toTopOf="@+id/amountPaidWithFeesView"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/timeView" />
-
-        <TextView
-            android:id="@+id/amountPaidWithFeesView"
-            style="@style/TransactionContent"
-            android:textColor="?colorError"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/amountPaidWithFeesLabel"
-            tools:text="-23.42 TESTKUDOS" />
-
-        <TextView
-            android:id="@+id/orderAmountLabel"
-            style="@style/TransactionLabel"
-            android:text="@string/transaction_order_total"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/amountPaidWithFeesView" 
/>
-
-        <TextView
-            android:id="@+id/orderAmountView"
-            style="@style/TransactionContent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/orderAmountLabel"
-            tools:text="23 TESTKUDOS" />
-
-        <TextView
-            android:id="@+id/feeLabel"
-            style="@style/TransactionLabel"
-            android:text="@string/withdraw_fees"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/orderAmountView" />
-
-        <TextView
-            android:id="@+id/feeView"
-            style="@style/TransactionContent"
-            android:textColor="?colorError"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/feeLabel"
-            tools:text="-0.42 TESTKUDOS" />
-
-        <TextView
-            android:id="@+id/orderSummaryLabel"
-            style="@style/TransactionLabel"
-            android:text="@string/transaction_order"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/feeView" />
-
-        <TextView
-            android:id="@+id/orderSummaryView"
-            style="@style/TransactionContent"
-            android:textColor="?android:textColorPrimary"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/orderSummaryLabel"
-            tools:text="Some Product that was bought and can have quite a long 
label" />
-
-        <TextView
-            android:id="@+id/orderIdView"
-            style="@style/TransactionLabel"
-            android:layout_marginBottom="16dp"
-            android:text="@string/transaction_order_id"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/orderSummaryView" />
-
-        <com.google.android.material.button.MaterialButton
-            android:id="@+id/deleteButton"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginVertical="10dp"
-            android:text="@string/transactions_delete"
-            android:textColor="?colorOnError"
-            app:backgroundTint="?colorError"
-            app:icon="@drawable/ic_delete"
-            app:iconTint="?colorOnError"
-            app:layout_constraintBottom_toTopOf="@id/showErrorButton"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/orderIdView" />
-
-        <com.google.android.material.button.MaterialButton
-            android:id="@+id/showErrorButton"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:layout_marginVertical="10dp"
-            android:visibility="gone"
-            android:text="@string/nav_error"
-            app:backgroundTint="?colorError"
-            app:icon="@drawable/ic_error"
-            android:textColor="?colorOnError"
-            app:iconTint="?colorOnError"
-            app:layout_constraintBottom_toBottomOf="parent"
-            app:layout_constraintEnd_toEndOf="parent"
-            app:layout_constraintStart_toStartOf="parent"
-            app:layout_constraintTop_toBottomOf="@+id/deleteButton"
-            tools:visibility="visible" />
-
-    </androidx.constraintlayout.widget.ConstraintLayout>
-
-</ScrollView>
diff --git a/wallet/src/main/res/navigation/nav_graph.xml 
b/wallet/src/main/res/navigation/nav_graph.xml
index b559196..966afac 100644
--- a/wallet/src/main/res/navigation/nav_graph.xml
+++ b/wallet/src/main/res/navigation/nav_graph.xml
@@ -236,14 +236,12 @@
     <fragment
         android:id="@+id/nav_transactions_detail_payment"
         android:name="net.taler.wallet.transactions.TransactionPaymentFragment"
-        android:label="@string/transactions_detail_title"
-        tools:layout="@layout/fragment_transaction_payment" />
+        android:label="@string/transactions_detail_title" />
 
     <fragment
         android:id="@+id/nav_transactions_detail_refund"
         android:name="net.taler.wallet.transactions.TransactionRefundFragment"
-        android:label="@string/transactions_detail_title"
-        tools:layout="@layout/fragment_transaction_payment" />
+        android:label="@string/transactions_detail_title" />
 
     <fragment
         android:id="@+id/nav_transactions_detail_refresh"
@@ -263,8 +261,7 @@
     <fragment
         android:id="@+id/nav_transactions_detail_peer"
         android:name="net.taler.wallet.transactions.TransactionPeerFragment"
-        android:label="@string/transactions_detail_title"
-        tools:layout="@layout/fragment_transaction_payment" />
+        android:label="@string/transactions_detail_title" />
 
     <fragment
         android:id="@+id/alreadyAccepted"

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