taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

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:
Mmerchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFetcherFragment.kt | 12++++++++----
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()) } }