summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/transactions
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2023-01-17 12:19:39 -0300
committerTorsten Grote <t@grobox.de>2023-01-17 12:19:39 -0300
commit6622f7d7cf6a309af085a2fd1dea21c5ee6826d5 (patch)
treec1f12a6ecdf7cbea9d7ea8deb284cde7d55a192f /wallet/src/main/java/net/taler/wallet/transactions
parent9049e305ac376d7e04b8190c9f65f6efe24562b1 (diff)
downloadtaler-android-6622f7d7cf6a309af085a2fd1dea21c5ee6826d5.tar.gz
taler-android-6622f7d7cf6a309af085a2fd1dea21c5ee6826d5.tar.bz2
taler-android-6622f7d7cf6a309af085a2fd1dea21c5ee6826d5.zip
[wallet] Clean up KYC handling a bit
#0007566
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/transactions')
-rw-r--r--wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt16
-rw-r--r--wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt23
-rw-r--r--wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt11
3 files changed, 20 insertions, 30 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt
index c4ec060..fa30f5c 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionAdapter.kt
@@ -36,6 +36,7 @@ import com.google.android.material.button.MaterialButton
import net.taler.common.exhaustive
import net.taler.common.toRelativeTime
import net.taler.wallet.R
+import net.taler.wallet.handleKyc
import net.taler.wallet.transactions.TransactionAdapter.TransactionViewHolder
internal class TransactionAdapter(
@@ -127,16 +128,11 @@ internal class TransactionAdapter(
}
private fun bindActionButton(transaction: Transaction) {
- actionButton.setOnClickListener { listener.onActionButtonClicked(transaction) }
- actionButton.visibility = transaction.error?.let { error ->
- when (error.code) {
- 7025 -> { // KYC
- actionButton.setText(R.string.transaction_action_kyc)
- VISIBLE
- }
- else -> GONE
- }
- } ?: GONE
+ actionButton.visibility = transaction.handleKyc({ GONE }) {
+ actionButton.setOnClickListener { listener.onActionButtonClicked(transaction) }
+ actionButton.setText(R.string.transaction_action_kyc)
+ VISIBLE
+ }
}
private fun bindAmount(transaction: Transaction) {
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
index feea5ba..31c70b5 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionWithdrawalFragment.kt
@@ -33,6 +33,7 @@ import net.taler.wallet.MainViewModel
import net.taler.wallet.R
import net.taler.wallet.cleanExchange
import net.taler.wallet.databinding.FragmentTransactionWithdrawalBinding
+import net.taler.wallet.handleKyc
import net.taler.wallet.transactions.WithdrawalDetails.ManualTransfer
import net.taler.wallet.transactions.WithdrawalDetails.TalerBankIntegrationApi
import net.taler.wallet.withdraw.createManualTransferRequired
@@ -104,25 +105,21 @@ class TransactionWithdrawalFragment : TransactionDetailFragment() {
)
withdrawManager.viewManualWithdrawal(status)
findNavController().navigate(
- R.id.action_nav_transactions_detail_withdrawal_to_nav_exchange_manual_withdrawal_success)
+ R.id.action_nav_transactions_detail_withdrawal_to_nav_exchange_manual_withdrawal_success
+ )
}
} else ui.confirmWithdrawalButton.visibility = GONE
} else ui.confirmWithdrawalButton.visibility = GONE
}
private fun setupActionButton(t: TransactionWithdrawal) {
- ui.actionButton.visibility = t.error?.let { error ->
- when (error.code) {
- 7025 -> { // KYC
- ui.actionButton.setText(R.string.transaction_action_kyc)
- val i = Intent(ACTION_VIEW).apply {
- data = Uri.parse(error.kycUrl)
- }
- ui.actionButton.setOnClickListener { startActivitySafe(i) }
- VISIBLE
- }
- else -> GONE
+ ui.actionButton.visibility = t.handleKyc({ GONE }) {
+ ui.actionButton.setText(R.string.transaction_action_kyc)
+ val i = Intent(ACTION_VIEW).apply {
+ data = Uri.parse(it.kycUrl)
}
- } ?: GONE
+ ui.actionButton.setOnClickListener { startActivitySafe(i) }
+ VISIBLE
+ }
}
}
diff --git a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
index f8c1047..20da36b 100644
--- a/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
+++ b/wallet/src/main/java/net/taler/wallet/transactions/TransactionsFragment.kt
@@ -45,6 +45,7 @@ import net.taler.common.startActivitySafe
import net.taler.wallet.MainViewModel
import net.taler.wallet.R
import net.taler.wallet.databinding.FragmentTransactionsBinding
+import net.taler.wallet.handleKyc
interface OnTransactionClickListener {
fun onTransactionClicked(transaction: Transaction)
@@ -182,13 +183,9 @@ class TransactionsFragment : Fragment(), OnTransactionClickListener, ActionMode.
}
override fun onActionButtonClicked(transaction: Transaction) {
- transaction.error?.let {error ->
- when (error.code) {
- 7025 -> { // KYC
- val i = Intent(Intent.ACTION_VIEW, Uri.parse(error.kycUrl))
- startActivitySafe(i)
- }
- }
+ transaction.handleKyc({ error("Unhandled Action Button Event") }) {
+ val i = Intent(Intent.ACTION_VIEW, Uri.parse(it.kycUrl))
+ startActivitySafe(i)
}
}