diff options
author | Iván Ávalos <avalos@disroot.org> | 2023-10-31 16:52:11 -0600 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2023-11-02 10:09:28 -0300 |
commit | 5a8920d9ce58622632c1ad4d8b080a31de5f6bb4 (patch) | |
tree | d0535b11e4b75c2f5110521ede7036b51418f49f /wallet/src/main/java/net/taler | |
parent | 7f351d48e856bcfbbe1bdd27b7ab85e131f90e3b (diff) | |
download | taler-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')
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) } |