taler-android

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

commit b8b186a6382fef3433170bdf5f8e7b218a2f60b6
parent 6326c3450133618e17180d1fbe4e91d35d28d347
Author: Iván Ávalos <avalos@disroot.org>
Date:   Wed,  6 Nov 2024 13:25:21 +0100

[wallet] Bump qtart to 0.13.10

Diffstat:
Mwallet/build.gradle | 2+-
Mwallet/src/main/java/net/taler/wallet/peer/OutgoingPullFragment.kt | 8+++++++-
Mwallet/src/main/java/net/taler/wallet/peer/PeerManager.kt | 9++++++++-
3 files changed, 16 insertions(+), 3 deletions(-)

diff --git a/wallet/build.gradle b/wallet/build.gradle @@ -23,7 +23,7 @@ plugins { id "com.google.protobuf" version "0.9.4" } -def qtart_version = "0.13.6" +def qtart_version = "0.13.10" static def versionCodeEpoch() { return (new Date().getTime() / 1000).toInteger() diff --git a/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullFragment.kt b/wallet/src/main/java/net/taler/wallet/peer/OutgoingPullFragment.kt @@ -61,7 +61,13 @@ class OutgoingPullFragment : Fragment() { defaultCurrency = selectedScope?.currency, currencies = balanceManager.getCurrencies(), getCurrencySpec = balanceManager::getSpecForCurrency, - checkPeerPullCredit = peerManager::checkPeerPullCredit, + checkPeerPullCredit = { + // TODO: this should work with scopeInfo/exchangeBaseUrl + exchangeManager.findExchange(it.currency)?.let { ex -> + peerManager.checkPeerPullCredit(it, + exchangeBaseUrl = ex.exchangeBaseUrl) + } + }, onClose = { findNavController().navigate(R.id.action_nav_peer_pull_to_nav_main) } diff --git a/wallet/src/main/java/net/taler/wallet/peer/PeerManager.kt b/wallet/src/main/java/net/taler/wallet/peer/PeerManager.kt @@ -31,9 +31,11 @@ import kotlinx.serialization.json.jsonPrimitive import net.taler.common.Amount import net.taler.common.Timestamp import net.taler.wallet.TAG +import net.taler.wallet.backend.BackendManager import net.taler.wallet.backend.TalerErrorCode.WALLET_PEER_PUSH_PAYMENT_INSUFFICIENT_BALANCE import net.taler.wallet.backend.TalerErrorInfo import net.taler.wallet.backend.WalletBackendApi +import net.taler.wallet.balances.ScopeInfo import net.taler.wallet.cleanExchange import net.taler.wallet.exchanges.ExchangeItem import net.taler.wallet.exchanges.ExchangeManager @@ -76,12 +78,17 @@ class PeerManager( private val _incomingPushState = MutableStateFlow<IncomingState>(IncomingChecking) val incomingPushState: StateFlow<IncomingState> = _incomingPushState - suspend fun checkPeerPullCredit(amount: Amount, exchangeBaseUrl: String? = null): CheckPeerPullCreditResult? { + suspend fun checkPeerPullCredit( + amount: Amount, + exchangeBaseUrl: String? = null, + scopeInfo: ScopeInfo? = null, + ): CheckPeerPullCreditResult? { var response: CheckPeerPullCreditResult? = null val exchangeItem = exchangeManager.findExchange(amount.currency) ?: return null api.request("checkPeerPullCredit", CheckPeerPullCreditResponse.serializer()) { exchangeBaseUrl?.let { put("exchangeBaseUrl", it) } + scopeInfo?.let { put("restrictScope", JSONObject(BackendManager.json.encodeToString(scopeInfo))) } put("amount", amount.toJSONString()) }.onSuccess { response = CheckPeerPullCreditResult(