diff options
author | Torsten Grote <t@grobox.de> | 2020-09-03 10:01:11 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-09-03 10:41:20 -0300 |
commit | 126b0710dda4546dc3337df1bee886f5f4657674 (patch) | |
tree | 4b0ff37cf85805f4602cb92a47d3984282cdf384 /merchant-terminal/src/main/java/net/taler/merchantpos/refund | |
parent | 74b139473b395371ee487b9595627adcb85e78e9 (diff) | |
download | taler-android-126b0710dda4546dc3337df1bee886f5f4657674.tar.gz taler-android-126b0710dda4546dc3337df1bee886f5f4657674.tar.bz2 taler-android-126b0710dda4546dc3337df1bee886f5f4657674.zip |
[pos] migrate to view binding
Diffstat (limited to 'merchant-terminal/src/main/java/net/taler/merchantpos/refund')
-rw-r--r-- | merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundFragment.kt | 42 | ||||
-rw-r--r-- | merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundUriFragment.kt | 19 |
2 files changed, 33 insertions, 28 deletions
diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundFragment.kt index 752b7aa..91e68e6 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundFragment.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundFragment.kt @@ -22,11 +22,9 @@ 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.BaseTransientBottomBar.LENGTH_LONG import com.google.android.material.snackbar.Snackbar -import kotlinx.android.synthetic.main.fragment_refund.* import net.taler.common.fadeIn import net.taler.common.fadeOut import net.taler.common.navigate @@ -35,6 +33,7 @@ import net.taler.lib.common.AmountParserException import net.taler.merchantlib.OrderHistoryEntry import net.taler.merchantpos.MainViewModel import net.taler.merchantpos.R +import net.taler.merchantpos.databinding.FragmentRefundBinding import net.taler.merchantpos.refund.RefundFragmentDirections.Companion.actionRefundFragmentToRefundUriFragment import net.taler.merchantpos.refund.RefundResult.AlreadyRefunded import net.taler.merchantpos.refund.RefundResult.Error @@ -46,44 +45,47 @@ class RefundFragment : Fragment() { private val model: MainViewModel by activityViewModels() private val refundManager by lazy { model.refundManager } + private lateinit var ui: FragmentRefundBinding + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - return inflater.inflate(R.layout.fragment_refund, container, false) + ui = FragmentRefundBinding.inflate(inflater, container, false) + return ui.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { val item = refundManager.toBeRefunded ?: throw IllegalStateException() - amountInputView.setText(item.amount.amountStr) - currencyView.text = item.amount.currency - abortButton.setOnClickListener { findNavController().navigateUp() } - refundButton.setOnClickListener { onRefundButtonClicked(item) } + ui.amountInputView.setText(item.amount.amountStr) + ui.currencyView.text = item.amount.currency + ui.abortButton.setOnClickListener { findNavController().navigateUp() } + ui.refundButton.setOnClickListener { onRefundButtonClicked(item) } - refundManager.refundResult.observe(viewLifecycleOwner, Observer { result -> + refundManager.refundResult.observe(viewLifecycleOwner, { result -> onRefundResultChanged(result) }) } private fun onRefundButtonClicked(item: OrderHistoryEntry) { val inputAmount = try { - Amount.fromString(item.amount.currency, amountInputView.text.toString()) + Amount.fromString(item.amount.currency, ui.amountInputView.text.toString()) } catch (e: AmountParserException) { - amountView.error = getString(R.string.refund_error_invalid_amount) + ui.amountView.error = getString(R.string.refund_error_invalid_amount) return } if (inputAmount > item.amount) { - amountView.error = getString(R.string.refund_error_max_amount, item.amount.amountStr) + ui.amountView.error = getString(R.string.refund_error_max_amount, item.amount.amountStr) return } if (inputAmount.isZero()) { - amountView.error = getString(R.string.refund_error_zero) + ui.amountView.error = getString(R.string.refund_error_zero) return } - amountView.error = null - refundButton.fadeOut() - progressBar.fadeIn() - refundManager.refund(item, inputAmount, reasonInputView.text.toString()) + ui.amountView.error = null + ui.refundButton.fadeOut() + ui.progressBar.fadeIn() + refundManager.refund(item, inputAmount, ui.reasonInputView.text.toString()) } private fun onRefundResultChanged(result: RefundResult?): Any = when (result) { @@ -91,8 +93,8 @@ class RefundFragment : Fragment() { PastDeadline -> onError(getString(R.string.refund_error_deadline)) AlreadyRefunded -> onError(getString(R.string.refund_error_already_refunded)) is Success -> { - progressBar.fadeOut() - refundButton.fadeIn() + ui.progressBar.fadeOut() + ui.refundButton.fadeIn() navigate(actionRefundFragmentToRefundUriFragment()) } null -> { // no-op @@ -101,8 +103,8 @@ class RefundFragment : Fragment() { private fun onError(msg: String) { Snackbar.make(requireView(), msg, LENGTH_LONG).show() - progressBar.fadeOut() - refundButton.fadeIn() + ui.progressBar.fadeOut() + ui.refundButton.fadeIn() } } diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundUriFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundUriFragment.kt index b8e8997..5e52404 100644 --- a/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundUriFragment.kt +++ b/merchant-terminal/src/main/java/net/taler/merchantpos/refund/RefundUriFragment.kt @@ -23,22 +23,25 @@ import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.navigation.fragment.findNavController -import kotlinx.android.synthetic.main.fragment_refund_uri.* import net.taler.common.NfcManager.Companion.hasNfc import net.taler.common.QrCodeManager.makeQrCode import net.taler.merchantpos.MainViewModel import net.taler.merchantpos.R +import net.taler.merchantpos.databinding.FragmentRefundUriBinding class RefundUriFragment : Fragment() { private val model: MainViewModel by activityViewModels() private val refundManager by lazy { model.refundManager } + private lateinit var ui: FragmentRefundUriBinding + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - return inflater.inflate(R.layout.fragment_refund_uri, container, false) + ui = FragmentRefundUriBinding.inflate(inflater, container, false) + return ui.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -46,19 +49,19 @@ class RefundUriFragment : Fragment() { val result = refundManager.refundResult.value if (result !is RefundResult.Success) throw IllegalStateException() - refundQrcodeView.setImageBitmap(makeQrCode(result.refundUri)) + ui.refundQrcodeView.setImageBitmap(makeQrCode(result.refundUri)) val introRes = if (hasNfc(requireContext())) R.string.refund_intro_nfc else R.string.refund_intro - refundIntroView.setText(introRes) + ui.refundIntroView.setText(introRes) - refundAmountView.text = result.amount.toString() + ui.refundAmountView.text = result.amount.toString() - refundRefView.text = + ui.refundRefView.text = getString(R.string.refund_order_ref, result.item.orderId, result.reason) - cancelRefundButton.setOnClickListener { findNavController().navigateUp() } - completeButton.setOnClickListener { findNavController().navigateUp() } + ui.cancelRefundButton.setOnClickListener { findNavController().navigateUp() } + ui.completeButton.setOnClickListener { findNavController().navigateUp() } } override fun onDestroy() { |