summaryrefslogtreecommitdiff
path: root/app/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt')
-rw-r--r--app/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt46
1 files changed, 46 insertions, 0 deletions
diff --git a/app/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt b/app/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt
new file mode 100644
index 0000000..4d387da
--- /dev/null
+++ b/app/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt
@@ -0,0 +1,46 @@
+package net.taler.merchantpos.config
+
+import android.os.Bundle
+import android.view.LayoutInflater
+import android.view.View
+import android.view.ViewGroup
+import androidx.fragment.app.Fragment
+import androidx.fragment.app.activityViewModels
+import androidx.lifecycle.Observer
+import androidx.navigation.fragment.findNavController
+import com.google.android.material.snackbar.Snackbar
+import com.google.android.material.snackbar.Snackbar.LENGTH_SHORT
+import net.taler.merchantpos.MainViewModel
+import net.taler.merchantpos.R
+
+class ConfigFetcherFragment : Fragment() {
+
+ private val model: MainViewModel by activityViewModels()
+ private val configManager by lazy { model.configManager }
+
+ override fun onCreateView(
+ inflater: LayoutInflater, container: ViewGroup?,
+ savedInstanceState: Bundle?
+ ): View? {
+ return inflater.inflate(R.layout.fragment_config_fetcher, container, false)
+ }
+
+ override fun onActivityCreated(savedInstanceState: Bundle?) {
+ super.onActivityCreated(savedInstanceState)
+
+ configManager.configUpdateResult.observe(viewLifecycleOwner, Observer { result ->
+ when {
+ result == null -> return@Observer
+ result.error -> onNetworkError(result.authError)
+ else -> findNavController().navigate(R.id.order)
+ }
+ })
+ }
+
+ private fun onNetworkError(authError: Boolean) {
+ val res = if (authError) R.string.config_auth_error else R.string.config_error
+ Snackbar.make(view!!, res, LENGTH_SHORT).show()
+ findNavController().navigate(R.id.action_configFetcher_to_merchantSettings)
+ }
+
+}