diff options
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.kt | 36 |
1 files changed, 23 insertions, 13 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 index e315632..674632e 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeAdapter.kt @@ -26,23 +26,15 @@ import android.widget.TextView import androidx.appcompat.widget.PopupMenu import androidx.recyclerview.widget.RecyclerView import androidx.recyclerview.widget.RecyclerView.Adapter -import kotlinx.serialization.Serializable import net.taler.wallet.R -import net.taler.wallet.cleanExchange import net.taler.wallet.exchanges.ExchangeAdapter.ExchangeItemViewHolder -@Serializable -data class ExchangeItem( - val exchangeBaseUrl: String, - val currency: String, - val paytoUris: List<String> -) { - val name: String get() = cleanExchange(exchangeBaseUrl) -} - interface ExchangeClickListener { fun onExchangeSelected(item: ExchangeItem) fun onManualWithdraw(item: ExchangeItem) + fun onPeerReceive(item: ExchangeItem) + fun onExchangeReload(item: ExchangeItem) + fun onExchangeDelete(item: ExchangeItem) } internal class ExchangeAdapter( @@ -78,14 +70,20 @@ internal class ExchangeAdapter( fun bind(item: ExchangeItem) { urlView.text = item.name - currencyView.text = context.getString(R.string.exchange_list_currency, item.currency) + // If currency is null, it's because we have no data from the exchange... + currencyView.text = if (item.currency == null) { + context.getString(R.string.exchange_not_contacted) + } else { + context.getString(R.string.exchange_list_currency, item.currency) + } if (selectOnly) { itemView.setOnClickListener { listener.onExchangeSelected(item) } overflowIcon.visibility = GONE } else { itemView.setOnClickListener(null) itemView.isClickable = false - overflowIcon.visibility = VISIBLE + // ...thus, we should prevent the user from interacting with it. + overflowIcon.visibility = if (item.currency != null) VISIBLE else GONE } overflowIcon.setOnClickListener { openMenu(overflowIcon, item) } } @@ -98,6 +96,18 @@ internal class ExchangeAdapter( listener.onManualWithdraw(item) true } + R.id.action_receive_peer -> { + listener.onPeerReceive(item) + true + } + R.id.action_reload -> { + listener.onExchangeReload(item) + true + } + R.id.action_delete -> { + listener.onExchangeDelete(item) + true + } else -> false } } |