From 8b7947a14349877120e74127a3949a73f917c3d2 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 15 Apr 2020 09:37:37 -0300 Subject: [wallet] use floating action button for scan action This prepares a layout change for display of balances and transactions. --- .../main/java/net/taler/wallet/BalanceAdapter.kt | 79 ++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 wallet/src/main/java/net/taler/wallet/BalanceAdapter.kt (limited to 'wallet/src/main/java/net/taler/wallet/BalanceAdapter.kt') diff --git a/wallet/src/main/java/net/taler/wallet/BalanceAdapter.kt b/wallet/src/main/java/net/taler/wallet/BalanceAdapter.kt new file mode 100644 index 0000000..96cfb99 --- /dev/null +++ b/wallet/src/main/java/net/taler/wallet/BalanceAdapter.kt @@ -0,0 +1,79 @@ +/* + * 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 + */ + +package net.taler.wallet + +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.BalanceAdapter.BalanceViewHolder + +class BalanceAdapter(private val listener: BalanceClickListener) : Adapter() { + + private var items = emptyList() + + 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) { + 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() } + 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) + } + } + } + +} -- cgit v1.2.3