From 85c344b358e13d5b78647d191d6129dd11f8bdaf Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 3 Sep 2020 11:50:13 -0300 Subject: [wallet] migrate away from kotlin view extensions --- .../taler/wallet/payment/AlreadyPaidFragment.kt | 10 ++-- .../taler/wallet/payment/ProductImageFragment.kt | 10 ++-- .../taler/wallet/payment/PromptPaymentFragment.kt | 56 +++++++++++----------- 3 files changed, 41 insertions(+), 35 deletions(-) (limited to 'wallet/src/main/java/net/taler/wallet/payment') diff --git a/wallet/src/main/java/net/taler/wallet/payment/AlreadyPaidFragment.kt b/wallet/src/main/java/net/taler/wallet/payment/AlreadyPaidFragment.kt index 33e3a1d..df2b2b8 100644 --- a/wallet/src/main/java/net/taler/wallet/payment/AlreadyPaidFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/payment/AlreadyPaidFragment.kt @@ -22,8 +22,7 @@ import android.view.View import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.navigation.fragment.findNavController -import kotlinx.android.synthetic.main.fragment_already_paid.* -import net.taler.wallet.R +import net.taler.wallet.databinding.FragmentAlreadyPaidBinding /** * Display the message that the user already paid for the order @@ -31,15 +30,18 @@ import net.taler.wallet.R */ class AlreadyPaidFragment : Fragment() { + private lateinit var ui: FragmentAlreadyPaidBinding + override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - return inflater.inflate(R.layout.fragment_already_paid, container, false) + ui = FragmentAlreadyPaidBinding.inflate(inflater, container, false) + return ui.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - backButton.setOnClickListener { + ui.backButton.setOnClickListener { findNavController().navigateUp() } } diff --git a/wallet/src/main/java/net/taler/wallet/payment/ProductImageFragment.kt b/wallet/src/main/java/net/taler/wallet/payment/ProductImageFragment.kt index ff70f75..75de93f 100644 --- a/wallet/src/main/java/net/taler/wallet/payment/ProductImageFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/payment/ProductImageFragment.kt @@ -22,11 +22,12 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import androidx.fragment.app.DialogFragment -import kotlinx.android.synthetic.main.fragment_product_image.* -import net.taler.wallet.R +import net.taler.wallet.databinding.FragmentProductImageBinding class ProductImageFragment private constructor() : DialogFragment() { + private lateinit var ui: FragmentProductImageBinding + companion object { private const val IMAGE = "image" @@ -41,12 +42,13 @@ class ProductImageFragment private constructor() : DialogFragment() { inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - return inflater.inflate(R.layout.fragment_product_image, container, false) + ui = FragmentProductImageBinding.inflate(inflater, container, false) + return ui.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { val bitmap = requireArguments().getParcelable(IMAGE) - productImageView.setImageBitmap(bitmap) + ui.productImageView.setImageBitmap(bitmap) } } diff --git a/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt b/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt index 99a6ec8..8815408 100644 --- a/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt +++ b/wallet/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt @@ -32,14 +32,13 @@ import androidx.recyclerview.widget.LinearLayoutManager import androidx.transition.TransitionManager.beginDelayedTransition import com.google.android.material.snackbar.Snackbar import com.google.android.material.snackbar.Snackbar.LENGTH_LONG -import kotlinx.android.synthetic.main.payment_bottom_bar.* -import kotlinx.android.synthetic.main.payment_details.* import net.taler.common.ContractTerms import net.taler.common.fadeIn import net.taler.common.fadeOut import net.taler.lib.common.Amount import net.taler.wallet.MainViewModel import net.taler.wallet.R +import net.taler.wallet.databinding.FragmentPromptPaymentBinding /** * Show a payment and ask the user to accept/decline. @@ -48,13 +47,16 @@ class PromptPaymentFragment : Fragment(), ProductImageClickListener { private val model: MainViewModel by activityViewModels() private val paymentManager by lazy { model.paymentManager } + + private lateinit var ui: FragmentPromptPaymentBinding private val adapter = ProductAdapter(this) override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { - return inflater.inflate(R.layout.fragment_prompt_payment, container, false) + ui = FragmentPromptPaymentBinding.inflate(inflater, container, false) + return ui.root } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { @@ -62,14 +64,14 @@ class PromptPaymentFragment : Fragment(), ProductImageClickListener { paymentManager.detailsShown.observe(viewLifecycleOwner, Observer { shown -> beginDelayedTransition(view as ViewGroup) val res = if (shown) R.string.payment_hide_details else R.string.payment_show_details - detailsButton.setText(res) - productsList.visibility = if (shown) VISIBLE else GONE + ui.details.detailsButton.setText(res) + ui.details.productsList.visibility = if (shown) VISIBLE else GONE }) - detailsButton.setOnClickListener { + ui.details.detailsButton.setOnClickListener { paymentManager.toggleDetailsShown() } - productsList.apply { + ui.details.productsList.apply { adapter = this@PromptPaymentFragment.adapter layoutManager = LinearLayoutManager(requireContext()) } @@ -85,9 +87,9 @@ class PromptPaymentFragment : Fragment(), ProductImageClickListener { private fun showLoading(show: Boolean) { model.showProgressBar.value = show if (show) { - progressBar.fadeIn() + ui.details.progressBar.fadeIn() } else { - progressBar.fadeOut() + ui.details.progressBar.fadeOut() } } @@ -97,22 +99,22 @@ class PromptPaymentFragment : Fragment(), ProductImageClickListener { showLoading(false) val fees = payStatus.amountEffective - payStatus.amountRaw showOrder(payStatus.contractTerms, payStatus.amountRaw, fees) - confirmButton.isEnabled = true - confirmButton.setOnClickListener { + ui.bottom.confirmButton.isEnabled = true + ui.bottom.confirmButton.setOnClickListener { model.showProgressBar.value = true paymentManager.confirmPay( payStatus.proposalId, payStatus.contractTerms.amount.currency ) - confirmButton.fadeOut() - confirmProgressBar.fadeIn() + ui.bottom.confirmButton.fadeOut() + ui.bottom.confirmProgressBar.fadeIn() } } is PayStatus.InsufficientBalance -> { showLoading(false) showOrder(payStatus.contractTerms, payStatus.amountRaw) - errorView.setText(R.string.payment_balance_insufficient) - errorView.fadeIn() + ui.details.errorView.setText(R.string.payment_balance_insufficient) + ui.details.errorView.fadeIn() } is PayStatus.Success -> { showLoading(false) @@ -128,8 +130,8 @@ class PromptPaymentFragment : Fragment(), ProductImageClickListener { } is PayStatus.Error -> { showLoading(false) - errorView.text = getString(R.string.payment_error, payStatus.error) - errorView.fadeIn() + ui.details.errorView.text = getString(R.string.payment_error, payStatus.error) + ui.details.errorView.fadeIn() } is PayStatus.None -> { // No payment active. @@ -143,21 +145,21 @@ class PromptPaymentFragment : Fragment(), ProductImageClickListener { } private fun showOrder(contractTerms: ContractTerms, amount:Amount, totalFees: Amount? = null) { - orderView.text = contractTerms.summary + ui.details.orderView.text = contractTerms.summary adapter.setItems(contractTerms.products) if (contractTerms.products.size == 1) paymentManager.toggleDetailsShown() - totalView.text = amount.toString() + ui.bottom.totalView.text = amount.toString() if (totalFees != null && !totalFees.isZero()) { - feeView.text = getString(R.string.payment_fee, totalFees) - feeView.fadeIn() + ui.bottom.feeView.text = getString(R.string.payment_fee, totalFees) + ui.bottom.feeView.fadeIn() } else { - feeView.visibility = GONE + ui.bottom.feeView.visibility = GONE } - orderLabelView.fadeIn() - orderView.fadeIn() - if (contractTerms.products.size > 1) detailsButton.fadeIn() - totalLabelView.fadeIn() - totalView.fadeIn() + ui.details.orderLabelView.fadeIn() + ui.details.orderView.fadeIn() + if (contractTerms.products.size > 1) ui.details.detailsButton.fadeIn() + ui.bottom.totalLabelView.fadeIn() + ui.bottom.totalView.fadeIn() } override fun onImageClick(image: Bitmap) { -- cgit v1.2.3