commit 8c8671e725b81877e6406525761dc458a315e7ab
parent 4a320df1e66ebaeb58699b237729e6f7d15e634c
Author: Iván Ávalos <avalos@disroot.org>
Date: Thu, 5 Jun 2025 18:33:14 +0200
[pos] fix navigation crash on network error
Diffstat:
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt
@@ -28,7 +28,6 @@ import com.google.android.material.snackbar.Snackbar
import net.taler.common.navigate
import net.taler.merchantpos.MainViewModel
import net.taler.merchantpos.config.ConfigFetcherFragmentDirections.Companion.actionConfigFetcherToMerchantSettings
-import net.taler.merchantpos.config.ConfigFetcherFragmentDirections.Companion.actionConfigFetcherToOrder
import net.taler.merchantpos.databinding.FragmentConfigFetcherBinding
import net.taler.merchantpos.R
@@ -39,6 +38,8 @@ class ConfigFetcherFragment : Fragment() {
private lateinit var ui: FragmentConfigFetcherBinding
+ private var navigating: Boolean = false
+
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?,
@@ -50,7 +51,8 @@ class ConfigFetcherFragment : Fragment() {
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
if (configManager.config.savePassword()) {
configManager.fetchConfig(configManager.config, false)
- } else {
+ } else if (!navigating) {
+ navigating = true
navigate(actionConfigFetcherToMerchantSettings())
}
@@ -59,7 +61,10 @@ class ConfigFetcherFragment : Fragment() {
null -> return@observe
is ConfigUpdateResult.Error -> onNetworkError(result.msg)
is ConfigUpdateResult.Success -> {
- findNavController().navigate(R.id.action_global_order)
+ if (!navigating) {
+ navigating = true
+ findNavController().navigate(R.id.action_global_order)
+ }
}
}
}
@@ -67,7 +72,6 @@ class ConfigFetcherFragment : Fragment() {
private fun onNetworkError(msg: String) {
Snackbar.make(requireView(), msg, LENGTH_SHORT).show()
- navigate(actionConfigFetcherToMerchantSettings())
}
}