summaryrefslogtreecommitdiff
path: root/merchant-terminal/src/main/java/net/taler/merchantpos/refund
diff options
context:
space:
mode:
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/refund')
-rw-r--r--merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundManager.kt24
1 files changed, 11 insertions, 13 deletions
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundManager.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundManager.kt
index ea2d398..25c7c5e 100644
--- a/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundManager.kt
+++ b/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundManager.kt
@@ -20,9 +20,9 @@ import androidx.annotation.UiThread
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import net.taler.common.Amount
+import net.taler.common.assertUiThread
import net.taler.merchantlib.MerchantApi
import net.taler.merchantlib.OrderHistoryEntry
import net.taler.merchantlib.RefundRequest
@@ -65,27 +65,25 @@ class RefundManager(
}
@UiThread
- internal fun refund(item: OrderHistoryEntry, amount: Amount, reason: String) {
+ internal fun refund(item: OrderHistoryEntry, amount: Amount, reason: String) = scope.launch {
val merchantConfig = configManager.merchantConfig!!
val request = RefundRequest(amount, reason)
- scope.launch(Dispatchers.IO) {
- api.giveRefund(merchantConfig, item.orderId, request).handle(::onRefundError) {
- val result = RefundResult.Success(
- refundUri = it.talerRefundUri,
- item = item,
- amount = amount,
- reason = reason
- )
- mRefundResult.postValue(result)
- }
+ api.giveRefund(merchantConfig, item.orderId, request).handle(::onRefundError) {
+ assertUiThread()
+ mRefundResult.value = RefundResult.Success(
+ refundUri = it.talerRefundUri,
+ item = item,
+ amount = amount,
+ reason = reason
+ )
}
}
@UiThread
private fun onRefundError(msg: String) {
+ assertUiThread()
if (msg.contains("2602")) {
mRefundResult.postValue(RefundResult.AlreadyRefunded)
} else mRefundResult.postValue(RefundResult.Error(msg))
}
-
}