summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/balances/BalanceAdapter.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-04-16 13:37:45 -0300
committerTorsten Grote <t@grobox.de>2020-04-16 13:37:45 -0300
commit0682c6b3d3f7cef22725f3db15916346fdc4529e (patch)
tree7f521a8b4f2520a7a83e84cc3c34d261c88a14c9 /wallet/src/main/java/net/taler/wallet/balances/BalanceAdapter.kt
parentea2abcac101645e429cab734c726e3b6a744dae9 (diff)
downloadtaler-android-0682c6b3d3f7cef22725f3db15916346fdc4529e.tar.gz
taler-android-0682c6b3d3f7cef22725f3db15916346fdc4529e.tar.bz2
taler-android-0682c6b3d3f7cef22725f3db15916346fdc4529e.zip
[wallet] change main screen if there is only one currency
If there is more than one currency, the screen shows a list of balances per currency like it used to. If there is only one currency, the main screen directly shows the list of transactions with the balance in the toolbar.
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.kt81
1 files changed, 81 insertions, 0 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
new file mode 100644
index 0000000..0ccfeb2
--- /dev/null
+++ b/wallet/src/main/java/net/taler/wallet/balances/BalanceAdapter.kt
@@ -0,0 +1,81 @@
+/*
+ * 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.balances
+
+import android.view.LayoutInflater
+import android.view.View
+import android.view.View.GONE
+import android.view.View.VISIBLE
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import androidx.recyclerview.widget.RecyclerView.Adapter
+import net.taler.wallet.BalanceItem
+import net.taler.wallet.R
+import net.taler.wallet.balances.BalanceAdapter.BalanceViewHolder
+
+class BalanceAdapter(private val listener: BalanceClickListener) : Adapter<BalanceViewHolder>() {
+
+ private var items = emptyList<BalanceItem>()
+
+ init {
+ setHasStableIds(false)
+ }
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): BalanceViewHolder {
+ val v =
+ LayoutInflater.from(parent.context).inflate(R.layout.list_item_balance, parent, false)
+ return BalanceViewHolder(v)
+ }
+
+ override fun getItemCount() = items.size
+
+ override fun onBindViewHolder(holder: BalanceViewHolder, position: Int) {
+ val item = items[position]
+ holder.bind(item)
+ }
+
+ fun setItems(items: List<BalanceItem>) {
+ this.items = items
+ this.notifyDataSetChanged()
+ }
+
+ inner class BalanceViewHolder(private val v: View) : RecyclerView.ViewHolder(v) {
+ private val currencyView: TextView = v.findViewById(R.id.balance_currency)
+ private val amountView: TextView = v.findViewById(R.id.balance_amount)
+ private val balanceInboundAmount: TextView = v.findViewById(R.id.balanceInboundAmount)
+ private val balanceInboundLabel: TextView = v.findViewById(R.id.balanceInboundLabel)
+
+ fun bind(item: BalanceItem) {
+ v.setOnClickListener { listener.onBalanceClick(item.available.currency) }
+ currencyView.text = item.available.currency
+ amountView.text = item.available.amountStr
+
+ val amountIncoming = item.pendingIncoming
+ if (amountIncoming.isZero()) {
+ balanceInboundAmount.visibility = GONE
+ balanceInboundLabel.visibility = GONE
+ } else {
+ balanceInboundAmount.visibility = VISIBLE
+ balanceInboundLabel.visibility = VISIBLE
+ balanceInboundAmount.text =
+ v.context.getString(R.string.amount_positive, amountIncoming)
+ }
+ }
+ }
+
+}