From 126b0710dda4546dc3337df1bee886f5f4657674 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 3 Sep 2020 10:01:11 -0300 Subject: [pos] migrate to view binding --- .../net/taler/merchantpos/config/ConfigFragment.kt | 61 ++++++++++++---------- 1 file changed, 32 insertions(+), 29 deletions(-) (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFragment.kt') 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 index daddbff..c31eb61 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFragment.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/config/ConfigFragment.kt @@ -30,11 +30,11 @@ import androidx.fragment.app.activityViewModels import androidx.lifecycle.Observer import com.google.android.material.snackbar.BaseTransientBottomBar.LENGTH_LONG import com.google.android.material.snackbar.Snackbar -import kotlinx.android.synthetic.main.fragment_merchant_config.* import net.taler.common.navigate import net.taler.merchantpos.MainViewModel import net.taler.merchantpos.R import net.taler.merchantpos.config.ConfigFragmentDirections.Companion.actionSettingsToOrder +import net.taler.merchantpos.databinding.FragmentMerchantConfigBinding import net.taler.merchantpos.topSnackbar /** @@ -45,86 +45,89 @@ class ConfigFragment : Fragment() { private val model: MainViewModel by activityViewModels() private val configManager by lazy { model.configManager } + private lateinit var ui: FragmentMerchantConfigBinding + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - return inflater.inflate(R.layout.fragment_merchant_config, container, false) + ui = FragmentMerchantConfigBinding.inflate(inflater, container, false) + return ui.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - configUrlView.editText!!.setOnFocusChangeListener { _, hasFocus -> + ui.configUrlView.editText!!.setOnFocusChangeListener { _, hasFocus -> if (!hasFocus) checkForUrlCredentials() } - okButton.setOnClickListener { + ui.okButton.setOnClickListener { checkForUrlCredentials() - val inputUrl = configUrlView.editText!!.text + val inputUrl = ui.configUrlView.editText!!.text val url = if (inputUrl.startsWith("http")) { inputUrl.toString() } else { - "https://$inputUrl".also { configUrlView.editText!!.setText(it) } + "https://$inputUrl".also { ui.configUrlView.editText!!.setText(it) } } - progressBar.visibility = VISIBLE - okButton.visibility = INVISIBLE + ui.progressBar.visibility = VISIBLE + ui.okButton.visibility = INVISIBLE val config = Config( configUrl = url, - username = usernameView.editText!!.text.toString(), - password = passwordView.editText!!.text.toString() + username = ui.usernameView.editText!!.text.toString(), + password = ui.passwordView.editText!!.text.toString() ) - configManager.fetchConfig(config, true, savePasswordCheckBox.isChecked) + configManager.fetchConfig(config, true, ui.savePasswordCheckBox.isChecked) configManager.configUpdateResult.observe(viewLifecycleOwner, Observer { result -> if (onConfigUpdate(result)) { configManager.configUpdateResult.removeObservers(viewLifecycleOwner) } }) } - forgetPasswordButton.setOnClickListener { + ui.forgetPasswordButton.setOnClickListener { configManager.forgetPassword() - passwordView.editText!!.text = null - forgetPasswordButton.visibility = GONE + ui.passwordView.editText!!.text = null + ui.forgetPasswordButton.visibility = GONE } - configDocsView.movementMethod = LinkMovementMethod.getInstance() + ui.configDocsView.movementMethod = LinkMovementMethod.getInstance() updateView(savedInstanceState == null) } override fun onStart() { super.onStart() // focus password if this is the only empty field - if (passwordView.editText!!.text.isBlank() - && !configUrlView.editText!!.text.isBlank() - && !usernameView.editText!!.text.isBlank() + if (ui.passwordView.editText!!.text.isBlank() + && !ui.configUrlView.editText!!.text.isBlank() + && !ui.usernameView.editText!!.text.isBlank() ) { - passwordView.requestFocus() + ui.passwordView.requestFocus() } } private fun updateView(isInitialization: Boolean = false) { val config = configManager.config - configUrlView.editText!!.setText( + ui.configUrlView.editText!!.setText( if (isInitialization && config.configUrl.isBlank()) CONFIG_URL_DEMO else config.configUrl ) - usernameView.editText!!.setText( + ui.usernameView.editText!!.setText( if (isInitialization && config.username.isBlank()) CONFIG_USERNAME_DEMO else config.username ) - passwordView.editText!!.setText( + ui.passwordView.editText!!.setText( if (isInitialization && config.password.isBlank()) CONFIG_PASSWORD_DEMO else config.password ) - forgetPasswordButton.visibility = if (config.hasPassword()) VISIBLE else GONE + ui.forgetPasswordButton.visibility = if (config.hasPassword()) VISIBLE else GONE } private fun checkForUrlCredentials() { - val text = configUrlView.editText!!.text.toString() + val text = ui.configUrlView.editText!!.text.toString() Uri.parse(text)?.userInfo?.let { userInfo -> if (userInfo.contains(':')) { val (user, pass) = userInfo.split(':') val strippedUrl = text.replace("${userInfo}@", "") - configUrlView.editText!!.setText(strippedUrl) - usernameView.editText!!.setText(user) - passwordView.editText!!.setText(pass) + ui.configUrlView.editText!!.setText(strippedUrl) + ui.usernameView.editText!!.setText(user) + ui.passwordView.editText!!.setText(pass) } } } @@ -157,8 +160,8 @@ class ConfigFragment : Fragment() { } private fun onResultReceived() { - progressBar.visibility = INVISIBLE - okButton.visibility = VISIBLE + ui.progressBar.visibility = INVISIBLE + ui.okButton.visibility = VISIBLE } } -- cgit v1.2.3