diff options
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/balances/BalanceAdapter.kt')
-rw-r--r-- | wallet/src/main/java/net/taler/wallet/balances/BalanceAdapter.kt | 40 |
1 files changed, 22 insertions, 18 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/balances/BalanceAdapter.kt b/wallet/src/main/java/net/taler/wallet/balances/BalanceAdapter.kt index 09ae353..f40def4 100644 --- a/wallet/src/main/java/net/taler/wallet/balances/BalanceAdapter.kt +++ b/wallet/src/main/java/net/taler/wallet/balances/BalanceAdapter.kt @@ -24,20 +24,12 @@ import android.view.ViewGroup import android.widget.TextView import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.Adapter -import kotlinx.serialization.Serializable -import net.taler.lib.common.Amount import net.taler.wallet.R import net.taler.wallet.balances.BalanceAdapter.BalanceViewHolder - -@Serializable -data class BalanceItem( - val available: Amount, - val pendingIncoming: Amount, - val pendingOutgoing: Amount -) { - val currency: String get() = available.currency - val hasPending: Boolean get() = !pendingIncoming.isZero() || !pendingOutgoing.isZero() -} +import net.taler.wallet.balances.ScopeInfo.Auditor +import net.taler.wallet.balances.ScopeInfo.Exchange +import net.taler.wallet.balances.ScopeInfo.Global +import net.taler.wallet.cleanExchange class BalanceAdapter(private val listener: BalanceClickListener) : Adapter<BalanceViewHolder>() { @@ -66,16 +58,15 @@ class BalanceAdapter(private val listener: BalanceClickListener) : Adapter<Balan } inner class BalanceViewHolder(private val v: View) : RecyclerView.ViewHolder(v) { - private val currencyView: TextView = v.findViewById(R.id.balanceCurrencyView) private val amountView: TextView = v.findViewById(R.id.balanceAmountView) + private val scopeView: TextView = v.findViewById(R.id.scopeView) private val balanceInboundAmount: TextView = v.findViewById(R.id.balanceInboundAmount) private val balanceInboundLabel: TextView = v.findViewById(R.id.balanceInboundLabel) private val pendingView: TextView = v.findViewById(R.id.pendingView) fun bind(item: BalanceItem) { - v.setOnClickListener { listener.onBalanceClick(item.available.currency) } - currencyView.text = item.currency - amountView.text = item.available.amountStr + v.setOnClickListener { listener.onBalanceClick(item.scopeInfo) } + amountView.text = item.available.toString() val amountIncoming = item.pendingIncoming if (amountIncoming.isZero()) { @@ -84,9 +75,22 @@ class BalanceAdapter(private val listener: BalanceClickListener) : Adapter<Balan } else { balanceInboundAmount.visibility = VISIBLE balanceInboundLabel.visibility = VISIBLE - balanceInboundAmount.text = - v.context.getString(R.string.amount_positive, amountIncoming) + balanceInboundAmount.text = v.context.getString(R.string.amount_positive, amountIncoming.toString(showSymbol = false)) } + + val scopeInfo = item.scopeInfo + scopeView.visibility = when (scopeInfo) { + is Global -> GONE + is Exchange -> { + scopeView.text = v.context.getString(R.string.balance_scope_exchange, cleanExchange(scopeInfo.url)) + VISIBLE + } + is Auditor -> { + scopeView.text = v.context.getString(R.string.balance_scope_auditor, cleanExchange(scopeInfo.url)) + VISIBLE + } + } + pendingView.visibility = if (item.hasPending) VISIBLE else GONE } } |