diff options
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.kt | 46 |
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) + } + +} |