summaryrefslogtreecommitdiff
path: root/wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-07-17 14:46:09 -0300
committerTorsten Grote <t@grobox.de>2020-07-17 15:14:14 -0300
commitaa4472c62acd909cea65dd26102b5d7188c7aacd (patch)
tree930a4705a2437e82deec7991678aeec2b4f38712 /wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt
parent1c8da5aea284a0299840721afc86dae75b16ba78 (diff)
downloadtaler-android-aa4472c62acd909cea65dd26102b5d7188c7aacd.tar.gz
taler-android-aa4472c62acd909cea65dd26102b5d7188c7aacd.tar.bz2
taler-android-aa4472c62acd909cea65dd26102b5d7188c7aacd.zip
[wallet] Allow to add an exchange manually by providing its base URL
Diffstat (limited to 'wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt')
-rw-r--r--wallet/src/main/java/net/taler/wallet/exchanges/ExchangeListFragment.kt33
1 files changed, 25 insertions, 8 deletions
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<ExchangeItem>) {
+ 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()
+ }
+
}