summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-07-17 13:30:48 -0300
committerTorsten Grote <t@grobox.de>2020-07-17 13:30:48 -0300
commit1c8da5aea284a0299840721afc86dae75b16ba78 (patch)
tree1072ff33cf405e81b8c1730167f5e345946275fb /wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt
parent9400d765f07f57adb775518c5b66d8001893a7c4 (diff)
downloadtaler-android-1c8da5aea284a0299840721afc86dae75b16ba78.tar.gz
taler-android-1c8da5aea284a0299840721afc86dae75b16ba78.tar.bz2
taler-android-1c8da5aea284a0299840721afc86dae75b16ba78.zip
[wallet] show list of known exchanges in settings
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt')
-rw-r--r--wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt66
1 files changed, 66 insertions, 0 deletions
diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt
new file mode 100644
index 0000000..f53ce46
--- /dev/null
+++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt
@@ -0,0 +1,66 @@
+/*
+ * 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.exchanges
+
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import android.widget.TextView
+import androidx.recyclerview.widget.RecyclerView
+import net.taler.wallet.R
+import net.taler.wallet.cleanExchange
+import net.taler.wallet.exchanges.ExchangeAdapter.ExchangeItemViewHolder
+
+data class ExchangeItem(
+ val exchangeBaseUrl: String,
+ val currency: String,
+ val paytoUris: List<String>
+)
+
+internal class ExchangeAdapter : RecyclerView.Adapter<ExchangeItemViewHolder>() {
+
+ private val items = ArrayList<ExchangeItem>()
+
+ override fun onCreateViewHolder(parent: ViewGroup, viewType: Int): ExchangeItemViewHolder {
+ val view = LayoutInflater.from(parent.context)
+ .inflate(R.layout.list_item_exchange, parent, false)
+ return ExchangeItemViewHolder(view)
+ }
+
+ override fun getItemCount() = items.size
+
+ override fun onBindViewHolder(holder: ExchangeItemViewHolder, position: Int) {
+ holder.bind(items[position])
+ }
+
+ fun update(newItems: List<ExchangeItem>) {
+ items.clear()
+ items.addAll(newItems)
+ notifyDataSetChanged()
+ }
+
+ internal inner class ExchangeItemViewHolder(v: View) : RecyclerView.ViewHolder(v) {
+ private val context = v.context
+ private val urlView: TextView = v.findViewById(R.id.urlView)
+ private val currencyView: TextView = v.findViewById(R.id.currencyView)
+ fun bind(item: ExchangeItem) {
+ urlView.text = cleanExchange(item.exchangeBaseUrl)
+ currencyView.text = context.getString(R.string.exchange_list_currency, item.currency)
+ }
+ }
+
+}