summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler
diff options
context:
space:
mode:
authorIván Ávalos <avalos@disroot.org>2023-10-31 16:52:11 -0600
committerTorsten Grote <t@grobox.de>2023-11-02 10:09:28 -0300
commit5a8920d9ce58622632c1ad4d8b080a31de5f6bb4 (patch)
treed0535b11e4b75c2f5110521ede7036b51418f49f /wallet/src/main/java/net/taler
parent7f351d48e856bcfbbe1bdd27b7ab85e131f90e3b (diff)
downloadtaler-android-5a8920d9ce58622632c1ad4d8b080a31de5f6bb4.tar.gz
taler-android-5a8920d9ce58622632c1ad4d8b080a31de5f6bb4.tar.bz2
taler-android-5a8920d9ce58622632c1ad4d8b080a31de5f6bb4.zip
[wallet] Update refunds to new API
Diffstat (limited to 'wallet/src/main/java/net/taler')
-rw-r--r--wallet/src/main/java/net/taler/wallet/MainActivity.kt16
-rw-r--r--wallet/src/main/java/net/taler/wallet/refund/RefundManager.kt12
-rw-r--r--wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt12
3 files changed, 26 insertions, 14 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/MainActivity.kt b/wallet/src/main/java/net/taler/wallet/MainActivity.kt
index cfeeb31..4cbd738 100644
--- a/wallet/src/main/java/net/taler/wallet/MainActivity.kt
+++ b/wallet/src/main/java/net/taler/wallet/MainActivity.kt
@@ -22,8 +22,6 @@ import android.content.Context
import android.content.Intent
import android.content.Intent.ACTION_VIEW
import android.content.IntentFilter
-import android.net.NetworkCapabilities.NET_CAPABILITY_INTERNET
-import android.net.NetworkCapabilities.NET_CAPABILITY_VALIDATED
import android.net.Uri
import android.os.Bundle
import android.util.Log
@@ -38,6 +36,7 @@ import androidx.core.os.bundleOf
import androidx.core.view.GravityCompat.START
import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.Observer
+import androidx.lifecycle.lifecycleScope
import androidx.lifecycle.viewModelScope
import androidx.navigation.NavController
import androidx.navigation.fragment.NavHostFragment
@@ -312,10 +311,15 @@ class MainActivity : AppCompatActivity(), OnNavigationItemSelectedListener,
}
}
is RefundStatus.Success -> {
- val amount = status.response.amountRefundGranted
- model.showTransactions(amount.currency)
- val str = getString(R.string.refund_success, amount.amountStr)
- Snackbar.make(ui.navView, str, LENGTH_LONG).show()
+ lifecycleScope.launch {
+ val transactionId = status.response.transactionId
+ val transaction = model.transactionManager.getTransactionById(transactionId)
+ if (transaction != null) {
+ val currency = transaction.amountRaw.currency
+ model.showTransactions(currency)
+ Snackbar.make(ui.navView, getString(R.string.refund_success), LENGTH_LONG).show()
+ }
+ }
}
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/refund/RefundManager.kt b/wallet/src/main/java/net/taler/wallet/refund/RefundManager.kt
index 29f18c7..96e939b 100644
--- a/wallet/src/main/java/net/taler/wallet/refund/RefundManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/refund/RefundManager.kt
@@ -21,21 +21,17 @@ import androidx.lifecycle.MutableLiveData
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.launch
import kotlinx.serialization.Serializable
-import net.taler.common.Amount
import net.taler.wallet.backend.TalerErrorInfo
import net.taler.wallet.backend.WalletBackendApi
sealed class RefundStatus {
data class Error(val error: TalerErrorInfo) : RefundStatus()
- data class Success(val response: RefundResponse) : RefundStatus()
+ data class Success(val response: StartRefundQueryForUriResponse) : RefundStatus()
}
@Serializable
-data class RefundResponse(
- val amountEffectivePaid: Amount,
- val amountRefundGranted: Amount,
- val amountRefundGone: Amount,
- val pendingAtExchange: Boolean
+data class StartRefundQueryForUriResponse(
+ val transactionId: String,
)
class RefundManager(
@@ -46,7 +42,7 @@ class RefundManager(
fun refund(refundUri: String): LiveData<RefundStatus> {
val liveData = MutableLiveData<RefundStatus>()
scope.launch {
- api.request("applyRefund", RefundResponse.serializer()) {
+ api.request("startRefundQueryForUri", StartRefundQueryForUriResponse.serializer()) {
put("talerRefundUri", refundUri)
}.onError {
liveData.postValue(RefundStatus.Error(it))
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
index df62f31..edd2912 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionManager.kt
@@ -124,6 +124,18 @@ class TransactionManager(
}
}
+ suspend fun getTransactionById(transactionId: String): Transaction? {
+ var transaction: Transaction? = null
+ api.request("getTransactionById", Transaction.serializer()) {
+ put("transactionId", transactionId)
+ }.onError {
+ Log.e(TAG, "Error getting transaction $it")
+ }.onSuccess { result ->
+ transaction = result
+ }
+ return transaction
+ }
+
fun selectTransaction(transaction: Transaction) {
mSelectedTransaction.postValue(transaction)
}