summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/withdraw/SelectExchangeFragment.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-07-29 14:12:50 -0300
committerTorsten Grote <t@grobox.de>2020-07-29 16:17:46 -0300
commite19ba096d57353db6b1f141da4bf170ef2d2d534 (patch)
tree8ce7d138757a73f999f8e270e69cef44aa2f781b /wallet/src/main/java/net/taler/wallet/withdraw/SelectExchangeFragment.kt
parentbc35e8924e652c323001f62f6781657545fa378f (diff)
downloadtaler-android-e19ba096d57353db6b1f141da4bf170ef2d2d534.tar.gz
taler-android-e19ba096d57353db6b1f141da4bf170ef2d2d534.tar.bz2
taler-android-e19ba096d57353db6b1f141da4bf170ef2d2d534.zip
[wallet] update to new wallet-core with v8 exchange API
(except payments which are still buggy)
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/withdraw/SelectExchangeFragment.kt')
-rw-r--r--wallet/src/main/java/net/taler/wallet/withdraw/SelectExchangeFragment.kt142
1 files changed, 0 insertions, 142 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/withdraw/SelectExchangeFragment.kt b/wallet/src/main/java/net/taler/wallet/withdraw/SelectExchangeFragment.kt
deleted file mode 100644
index 2ade9f2..0000000
--- a/wallet/src/main/java/net/taler/wallet/withdraw/SelectExchangeFragment.kt
+++ /dev/null
@@ -1,142 +0,0 @@
-/*
- * This file is part of GNU Taler
- * (C) 2020 Taler Systems S.A.
- *
- * GNU Taler is free software; you can redistribute it and/or modify it under the
- * terms of the GNU General Public License as published by the Free Software
- * Foundation; either version 3, or (at your option) any later version.
- *
- * GNU Taler is distributed in the hope that it will be useful, but WITHOUT ANY
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
- * A PARTICULAR PURPOSE. See the GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License along with
- * GNU Taler; see the file COPYING. If not, see <http://www.gnu.org/licenses/>
- */
-
-package net.taler.wallet.withdraw
-
-import android.os.Bundle
-import android.view.LayoutInflater
-import android.view.View
-import android.view.View.GONE
-import android.view.ViewGroup
-import android.widget.TextView
-import androidx.core.content.ContextCompat.getColor
-import androidx.fragment.app.Fragment
-import androidx.fragment.app.activityViewModels
-import androidx.recyclerview.widget.RecyclerView.Adapter
-import androidx.recyclerview.widget.RecyclerView.ViewHolder
-import kotlinx.android.synthetic.main.fragment_select_exchange.*
-import net.taler.common.Amount
-import net.taler.common.toRelativeTime
-import net.taler.common.toShortDate
-import net.taler.wallet.MainViewModel
-import net.taler.wallet.R
-import net.taler.wallet.withdraw.CoinFeeAdapter.CoinFeeViewHolder
-import net.taler.wallet.withdraw.WireFeeAdapter.WireFeeViewHolder
-
-class SelectExchangeFragment : Fragment() {
-
- private val model: MainViewModel by activityViewModels()
- private val withdrawManager by lazy { model.withdrawManager }
-
- override fun onCreateView(
- inflater: LayoutInflater, container: ViewGroup?,
- savedInstanceState: Bundle?
- ): View? {
- return inflater.inflate(R.layout.fragment_select_exchange, container, false)
- }
-
- override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
- val fees = withdrawManager.exchangeFees ?: throw IllegalStateException()
- if (fees.withdrawFee.isZero()) {
- withdrawFeeLabel.visibility = GONE
- withdrawFeeView.visibility = GONE
- } else withdrawFeeView.setAmount(fees.withdrawFee)
- if (fees.overhead.isZero()) {
- overheadLabel.visibility = GONE
- overheadView.visibility = GONE
- } else overheadView.setAmount(fees.overhead)
- expirationView.text = fees.earliestDepositExpiration.ms.toRelativeTime(requireContext())
- coinFeesList.adapter = CoinFeeAdapter(fees.coinFees)
- wireFeesList.adapter = WireFeeAdapter(fees.wireFees)
- }
-
- private fun TextView.setAmount(amount: Amount) {
- if (amount.isZero()) text = amount.toString()
- else {
- text = getString(R.string.amount_negative, amount)
- setTextColor(getColor(context, R.color.red))
- }
- }
-
-}
-
-private class CoinFeeAdapter(private val items: List<CoinFee>) : Adapter<CoinFeeViewHolder>() {
- override fun getItemCount() = items.size
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): CoinFeeViewHolder {
- val v =
- LayoutInflater.from(parent.context).inflate(R.layout.list_item_coin_fee, parent, false)
- return CoinFeeViewHolder(v)
- }
-
- override fun onBindViewHolder(holder: CoinFeeViewHolder, position: Int) {
- holder.bind(items[position])
- }
-
- private class CoinFeeViewHolder(private val v: View) : ViewHolder(v) {
- private val res = v.context.resources
- private val coinView: TextView = v.findViewById(R.id.coinView)
- private val withdrawFeeView: TextView = v.findViewById(R.id.withdrawFeeView)
- private val depositFeeView: TextView = v.findViewById(R.id.depositFeeView)
- private val refreshFeeView: TextView = v.findViewById(R.id.refreshFeeView)
- private val refundFeeView: TextView = v.findViewById(R.id.refundFeeView)
- fun bind(item: CoinFee) {
- coinView.text = res.getQuantityString(
- R.plurals.exchange_fee_coin,
- item.quantity,
- item.coin,
- item.quantity
- )
- withdrawFeeView.text =
- v.context.getString(R.string.exchange_fee_withdraw_fee, item.feeWithdraw)
- depositFeeView.text =
- v.context.getString(R.string.exchange_fee_deposit_fee, item.feeDeposit)
- refreshFeeView.text =
- v.context.getString(R.string.exchange_fee_refresh_fee, item.feeRefresh)
- refundFeeView.text =
- v.context.getString(R.string.exchange_fee_refund_fee, item.feeRefresh)
- }
- }
-}
-
-private class WireFeeAdapter(private val items: List<WireFee>) : Adapter<WireFeeViewHolder>() {
- override fun getItemCount() = items.size
- override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): WireFeeViewHolder {
- val v =
- LayoutInflater.from(parent.context).inflate(R.layout.list_item_wire_fee, parent, false)
- return WireFeeViewHolder(v)
- }
-
- override fun onBindViewHolder(holder: WireFeeViewHolder, position: Int) {
- holder.bind(items[position])
- }
-
- private class WireFeeViewHolder(private val v: View) : ViewHolder(v) {
- private val validityView: TextView = v.findViewById(R.id.validityView)
- private val wireFeeView: TextView = v.findViewById(R.id.wireFeeView)
- private val closingFeeView: TextView = v.findViewById(R.id.closingFeeView)
- fun bind(item: WireFee) {
- validityView.text = v.context.getString(
- R.string.exchange_fee_wire_fee_timespan,
- item.start.ms.toShortDate(v.context),
- item.end.ms.toShortDate(v.context)
- )
- wireFeeView.text =
- v.context.getString(R.string.exchange_fee_wire_fee_wire_fee, item.wireFee)
- closingFeeView.text =
- v.context.getString(R.string.exchange_fee_wire_fee_closing_fee, item.closingFee)
- }
- }
-}