summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2022-11-02 08:58:45 -0300
committerTorsten Grote <t@grobox.de>2022-11-02 08:58:45 -0300
commit865f80d49a8741de55d27002717d7ca1b42c875f (patch)
treea2402ce7c72780510a3c707d803b012e2318d732 /wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
parent55624eb33bae14380efe8ca085dc420390b23702 (diff)
downloadtaler-android-865f80d49a8741de55d27002717d7ca1b42c875f.tar.gz
taler-android-865f80d49a8741de55d27002717d7ca1b42c875f.tar.bz2
taler-android-865f80d49a8741de55d27002717d7ca1b42c875f.zip
[wallet] Open payto:// URIs and hook into deposit to bank account flow
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt')
-rw-r--r--wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt79
1 files changed, 0 insertions, 79 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt b/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
index 0af4262..53cb259 100644
--- a/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
+++ b/wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt
@@ -21,14 +21,10 @@ import androidx.annotation.UiThread
import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData
import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.flow.MutableStateFlow
-import kotlinx.coroutines.flow.asStateFlow
import kotlinx.coroutines.launch
-import kotlinx.serialization.Serializable
import net.taler.common.Amount
import net.taler.common.ContractTerms
import net.taler.wallet.TAG
-import net.taler.wallet.accounts.PaytoUriIban
import net.taler.wallet.backend.TalerErrorInfo
import net.taler.wallet.backend.WalletBackendApi
import net.taler.wallet.payment.PayStatus.AlreadyPaid
@@ -68,9 +64,6 @@ class PaymentManager(
private val mPayStatus = MutableLiveData<PayStatus>(PayStatus.None)
internal val payStatus: LiveData<PayStatus> = mPayStatus
- private val mDepositState = MutableStateFlow<DepositState>(DepositState.Start)
- internal val depositState = mDepositState.asStateFlow()
-
@UiThread
fun preparePay(url: String) = scope.launch {
mPayStatus.value = PayStatus.Loading
@@ -131,76 +124,4 @@ class PaymentManager(
mPayStatus.value = PayStatus.Error(error.userFacingMsg)
}
- /* Deposits */
-
- @UiThread
- fun onDepositButtonClicked(amount: Amount, receiverName: String, iban: String, bic: String) {
- val paytoUri: String = PaytoUriIban(
- iban = iban,
- bic = bic,
- targetPath = "",
- params = mapOf("receiver-name" to receiverName),
- ).paytoUri
-
- if (depositState.value.showFees) {
- val effectiveDepositAmount = depositState.value.effectiveDepositAmount
- ?: Amount.zero(amount.currency)
- makeDeposit(paytoUri, amount, effectiveDepositAmount)
- } else {
- prepareDeposit(paytoUri, amount)
- }
- }
-
- private fun prepareDeposit(paytoUri: String, amount: Amount) {
- mDepositState.value = DepositState.CheckingFees
- scope.launch {
- api.request("prepareDeposit", PrepareDepositResponse.serializer()) {
- put("depositPaytoUri", paytoUri)
- put("amount", amount.toJSONString())
- }.onError {
- Log.e(TAG, "Error prepareDeposit $it")
- mDepositState.value = DepositState.Error(it.userFacingMsg)
- }.onSuccess {
- mDepositState.value = DepositState.FeesChecked(
- effectiveDepositAmount = it.effectiveDepositAmount,
- )
- }
- }
- }
-
- private fun makeDeposit(
- paytoUri: String,
- amount: Amount,
- effectiveDepositAmount: Amount,
- ) {
- mDepositState.value = DepositState.MakingDeposit(effectiveDepositAmount)
- scope.launch {
- api.request("createDepositGroup", CreateDepositGroupResponse.serializer()) {
- put("depositPaytoUri", paytoUri)
- put("amount", amount.toJSONString())
- }.onError {
- Log.e(TAG, "Error createDepositGroup $it")
- mDepositState.value = DepositState.Error(it.userFacingMsg)
- }.onSuccess {
- mDepositState.value = DepositState.Success
- }
- }
- }
-
- @UiThread
- fun resetDepositState() {
- mDepositState.value = DepositState.Start
- }
}
-
-@Serializable
-data class PrepareDepositResponse(
- val totalDepositCost: Amount,
- val effectiveDepositAmount: Amount,
-)
-
-@Serializable
-data class CreateDepositGroupResponse(
- val depositGroupId: String,
- val transactionId: String,
-)