From aa4472c62acd909cea65dd26102b5d7188c7aacd Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Fri, 17 Jul 2020 14:46:09 -0300 Subject: [wallet] Allow to add an exchange manually by providing its base URL --- .../taler/wallet/exchanges/ExchangeListFragment.kt | 33 ++++++++++++++++------ 1 file changed, 25 insertions(+), 8 deletions(-) (limited to 'wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt') diff --git a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt index 9d0c493..c844042 100644 --- a/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt @@ -20,12 +20,15 @@ import android.os.Bundle import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Toast +import android.widget.Toast.LENGTH_LONG import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.Observer import androidx.recyclerview.widget.DividerItemDecoration import androidx.recyclerview.widget.LinearLayoutManager import kotlinx.android.synthetic.main.fragment_exchange_list.* +import net.taler.common.EventObserver import net.taler.common.fadeIn import net.taler.common.fadeOut import net.taler.wallet.MainViewModel @@ -49,20 +52,34 @@ class ExchangeListFragment : Fragment() { adapter = exchangeAdapter addItemDecoration(DividerItemDecoration(context, LinearLayoutManager.VERTICAL)) } + addExchangeFab.setOnClickListener { + AddExchangeDialogFragment().show(parentFragmentManager, "ADD_EXCHANGE") + } exchangeManager.progress.observe(viewLifecycleOwner, Observer { show -> if (show) progressBar.fadeIn() else progressBar.fadeOut() }) exchangeManager.exchanges.observe(viewLifecycleOwner, Observer { exchanges -> - exchangeAdapter.update(exchanges) - if (exchanges.isEmpty()) { - emptyState.fadeIn() - list.fadeOut() - } else { - emptyState.fadeOut() - list.fadeIn() - } + onExchangeUpdate(exchanges) + }) + exchangeManager.addError.observe(viewLifecycleOwner, EventObserver { error -> + if (error) onAddExchangeFailed() }) } + private fun onExchangeUpdate(exchanges: List) { + exchangeAdapter.update(exchanges) + if (exchanges.isEmpty()) { + emptyState.fadeIn() + list.fadeOut() + } else { + emptyState.fadeOut() + list.fadeIn() + } + } + + private fun onAddExchangeFailed() { + Toast.makeText(requireContext(), R.string.exchange_add_error, LENGTH_LONG).show() + } + } -- cgit v1.2.3