taler-android

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

commit e2c2831e0b1f9d902d84023c860fb9e029aa47da
parent 041c1538d924563ae0850d010d7af198061c3963
Author: Iván Ávalos <avalos@disroot.org>
Date:   Fri, 15 May 2026 19:55:39 +0200

[pos] fix "Modify saved instance" button

Diffstat:
Mmerchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFragment.kt | 30++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)

diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFragment.kt @@ -99,10 +99,6 @@ class ConfigFragment : Fragment() { } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - configManager.configUpdateResult.observe(viewLifecycleOwner) { result -> - onConfigUpdate(result) - } - // 1) Views val neverOption = ui.root.findViewById<RadioButton>(R.id.neverExpiresOption) val dateOption = ui.root.findViewById<RadioButton>(R.id.dateExpiresOption) @@ -135,6 +131,11 @@ class ConfigFragment : Fragment() { } } + ui.forgetTokenButton.setOnClickListener { + configManager.forgetPassword() + updateView() + } + // manual configuration OK button ui.okNewButton.setOnClickListener { // launch coroutine to fetch limited token before config update @@ -182,6 +183,7 @@ class ConfigFragment : Fragment() { accessToken = limitedToken, savePassword = ui.saveTokenCheckBox.isChecked ) + configManager.configUpdateResult.observe(viewLifecycleOwner, ::onConfigUpdate) configManager.fetchConfig(config, true) } } @@ -253,21 +255,23 @@ class ConfigFragment : Fragment() { } private fun updateView(isInitialization: Boolean = false) { + val cfg = configManager.config if (isInitialization) { ui.merchantUrlView.editText!!.setText(NEW_CONFIG_URL_DEMO) - when (val cfg = configManager.config) { - is Config.New -> { - if (cfg.merchantUrl.isNotBlank()) { - ui.merchantUrlView.editText!!.setText(cfg.merchantUrl) - parseMerchantUrlAndUpdateFields() - } - ui.saveTokenCheckBox.isChecked = cfg.savePassword + if (cfg is Config.New) { + if (cfg.merchantUrl.isNotBlank()) { + ui.merchantUrlView.editText!!.setText(cfg.merchantUrl) + parseMerchantUrlAndUpdateFields() } + ui.saveTokenCheckBox.isChecked = cfg.savePassword + ui.tokenView.editText!!.setText(cfg.accessToken) } } - when (configManager.config) { + ui.forgetTokenButton.visibility = if (cfg.isValid()) VISIBLE else GONE + + when (cfg) { is Config.New -> { ui.configToggle.check(R.id.newConfigButton) showManualConfig() @@ -290,11 +294,13 @@ class ConfigFragment : Fragment() { updateView() Snackbar.make(requireView(), getString(R.string.config_changed, currency), LENGTH_LONG).show() findNavController().navigate(R.id.action_instanceSettings_to_order) + configManager.configUpdateResult.removeObservers(viewLifecycleOwner) } private fun onError(msg: String) { onResultReceived() Snackbar.make(requireView(), msg, LENGTH_LONG).show() + configManager.configUpdateResult.removeObservers(viewLifecycleOwner) } private fun onResultReceived() {