diff options
author | Torsten Grote <t@grobox.de> | 2020-02-14 12:10:10 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-02-14 12:10:10 -0300 |
commit | b2db61af90cde2c686bd75b7e8b8e69cb736a3b9 (patch) | |
tree | efcb221e87edd33b70415b9241c0dedc4a064fe9 /app/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt | |
parent | ada382885e9c103fe0795817a8585270a3079302 (diff) | |
download | wallet-android-b2db61af90cde2c686bd75b7e8b8e69cb736a3b9.tar.gz wallet-android-b2db61af90cde2c686bd75b7e8b8e69cb736a3b9.tar.bz2 wallet-android-b2db61af90cde2c686bd75b7e8b8e69cb736a3b9.zip |
Show products included in contract terms when paying
Diffstat (limited to 'app/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt')
-rw-r--r-- | app/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/app/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt b/app/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt index 4b4bf01..d623788 100644 --- a/app/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt +++ b/app/src/main/java/net/taler/wallet/payment/PromptPaymentFragment.kt @@ -20,13 +20,17 @@ import android.annotation.SuppressLint import android.os.Bundle import android.view.LayoutInflater import android.view.View +import android.view.View.GONE import android.view.View.INVISIBLE import android.view.View.VISIBLE import android.view.ViewGroup import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels +import androidx.lifecycle.Observer import androidx.lifecycle.observe import androidx.navigation.fragment.findNavController +import androidx.recyclerview.widget.LinearLayoutManager +import androidx.transition.TransitionManager.beginDelayedTransition import kotlinx.android.synthetic.main.fragment_prompt_payment.* import net.taler.wallet.Amount import net.taler.wallet.R @@ -39,6 +43,7 @@ class PromptPaymentFragment : Fragment() { private val model: WalletViewModel by activityViewModels() private val paymentManager by lazy { model.paymentManager } + private val adapter = ProductAdapter() override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, @@ -49,6 +54,20 @@ class PromptPaymentFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { paymentManager.payStatus.observe(viewLifecycleOwner, this::onPaymentStatusChanged) + 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 + }) + + detailsButton.setOnClickListener { + paymentManager.toggleDetailsShown() + } + productsList.apply { + adapter = this@PromptPaymentFragment.adapter + layoutManager = LinearLayoutManager(requireContext()) + } button_abort_payment.setOnClickListener { when (val ps = paymentManager.payStatus.value) { @@ -111,6 +130,7 @@ class PromptPaymentFragment : Fragment() { private fun showOrder(contractTerms: ContractTerms, totalFees: Amount?) { order_summary.text = contractTerms.summary + adapter.setItems(contractTerms.products) val amount = contractTerms.amount @SuppressLint("SetTextI18n") order_amount.text = "${amount.amount} ${amount.currency}" @@ -123,6 +143,7 @@ class PromptPaymentFragment : Fragment() { } fadeInView(order_summary_label) fadeInView(order_summary) + if (contractTerms.products.isNotEmpty()) fadeInView(detailsButton) fadeInView(order_amount_label) fadeInView(order_amount) } |