commit 8962c80c76c24c416e7e4d96a242b731f1b88752
parent b1468eb48b3a267638ccffca7aaa56458af8096a
Author: Iván Ávalos <avalos@disroot.org>
Date: Fri, 20 Mar 2026 11:21:18 +0100
[wallet] allow completing pending p2p requests
Diffstat:
2 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/wallet/src/main/java/net/taler/wallet/main/MainFragment.kt b/wallet/src/main/java/net/taler/wallet/main/MainFragment.kt
@@ -270,9 +270,18 @@ class MainFragment: Fragment() {
// unfinished transactions (dialog)
TransactionState(TransactionMajorState.Dialog) -> when (tx) {
is TransactionPayment -> {
- model.paymentManager.preparePay(tx.transactionId) {
- findNavController().navigate(R.id.action_global_promptPayment)
- }
+ model.paymentManager.preparePay(tx.transactionId) {}
+ findNavController().navigate(R.id.action_global_promptPayment)
+ }
+
+ is TransactionPeerPushCredit -> {
+ model.peerManager.preparePeerPushCredit(transactionId = tx.transactionId)
+ findNavController().navigate(R.id.action_global_promptPushPayment)
+ }
+
+ is TransactionPeerPullDebit -> {
+ model.peerManager.preparePeerPullDebit(transactionId = tx.transactionId)
+ findNavController().navigate(R.id.action_global_promptPullPayment)
}
else -> showTxDetails()
diff --git a/wallet/src/main/java/net/taler/wallet/peer/PeerManager.kt b/wallet/src/main/java/net/taler/wallet/peer/PeerManager.kt
@@ -267,11 +267,16 @@ class PeerManager(
_outgoingPushState.value = OutgoingIntro
}
- fun preparePeerPullDebit(talerUri: String) {
+ fun preparePeerPullDebit(
+ talerUri: String? = null,
+ transactionId: String? = null,
+ ) {
_incomingPullState.value = IncomingChecking
scope.launch(Dispatchers.IO) {
api.request("preparePeerPullDebit", PreparePeerPullDebitResponse.serializer()) {
- put("talerUri", talerUri)
+ talerUri?.let { put("talerUri", talerUri) }
+ transactionId?.let { put("transactionId", transactionId) }
+ this
}.onSuccess { response ->
_incomingPullState.value = IncomingTerms(
amountRaw = response.amountRaw,
@@ -300,11 +305,16 @@ class PeerManager(
}
}
- fun preparePeerPushCredit(talerUri: String) {
+ fun preparePeerPushCredit(
+ talerUri: String? = null,
+ transactionId: String? = null,
+ ) {
_incomingPushState.value = IncomingChecking
scope.launch(Dispatchers.IO) a@ {
api.request("preparePeerPushCredit", PreparePeerPushCreditResponse.serializer()) {
- put("talerUri", talerUri)
+ talerUri?.let { put("talerUri", talerUri) }
+ transactionId?.let { put("transactionId", transactionId) }
+ this
}.onSuccess { response ->
scope.launch(Dispatchers.IO) b@ {
val exchange = exchangeManager.findExchangeByUrl(response.exchangeBaseUrl)