From 865f80d49a8741de55d27002717d7ca1b42c875f Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 2 Nov 2022 08:58:45 -0300 Subject: [wallet] Open payto:// URIs and hook into deposit to bank account flow --- .../net/taler/wallet/payment/PaymentManager.kt | 79 ---------------------- 1 file changed, 79 deletions(-) (limited to 'wallet/src/main/java/net/taler/wallet/payment/PaymentManager.kt') 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.None) internal val payStatus: LiveData = mPayStatus - private val mDepositState = MutableStateFlow(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, -) -- cgit v1.2.3