diff options
author | Torsten Grote <t@grobox.de> | 2020-02-25 18:11:16 -0300 |
---|---|---|
committer | Torsten Grote <t@grobox.de> | 2020-02-26 15:08:05 -0300 |
commit | ffb36499d1d1cedacc20c2b8a59efe7134ed7f34 (patch) | |
tree | cc261a73c77572dde9a10872fe360b2f28a2aef7 /app/src/main/java/net/taler/merchantpos/order/OrderFragment.kt | |
parent | 4aa85912e86b8fae15a3ac1d78722c42059d667b (diff) | |
download | merchant-terminal-android-ffb36499d1d1cedacc20c2b8a59efe7134ed7f34.tar.gz merchant-terminal-android-ffb36499d1d1cedacc20c2b8a59efe7134ed7f34.tar.bz2 merchant-terminal-android-ffb36499d1d1cedacc20c2b8a59efe7134ed7f34.zip |
Initial support for multiple concurrent orders
Diffstat (limited to 'app/src/main/java/net/taler/merchantpos/order/OrderFragment.kt')
-rw-r--r-- | app/src/main/java/net/taler/merchantpos/order/OrderFragment.kt | 36 |
1 files changed, 24 insertions, 12 deletions
diff --git a/app/src/main/java/net/taler/merchantpos/order/OrderFragment.kt b/app/src/main/java/net/taler/merchantpos/order/OrderFragment.kt index 90d882f..8ababad 100644 --- a/app/src/main/java/net/taler/merchantpos/order/OrderFragment.kt +++ b/app/src/main/java/net/taler/merchantpos/order/OrderFragment.kt @@ -8,10 +8,12 @@ import androidx.fragment.app.Fragment import androidx.fragment.app.activityViewModels import androidx.lifecycle.Observer import androidx.navigation.fragment.findNavController +import androidx.navigation.fragment.navArgs import androidx.transition.TransitionManager.beginDelayedTransition import kotlinx.android.synthetic.main.fragment_order.* import net.taler.merchantpos.MainViewModel import net.taler.merchantpos.R +import net.taler.merchantpos.order.OrderFragmentDirections.Companion.actionGlobalOrder import net.taler.merchantpos.order.RestartState.ENABLED import net.taler.merchantpos.order.RestartState.UNDO @@ -20,6 +22,8 @@ class OrderFragment : Fragment() { private val viewModel: MainViewModel by activityViewModels() private val orderManager by lazy { viewModel.orderManager } private val paymentManager by lazy { viewModel.paymentManager } + private val args: OrderFragmentArgs by navArgs() + private val liveOrder by lazy { orderManager.getOrder(args.orderId) } override fun onCreateView( inflater: LayoutInflater, @@ -30,8 +34,8 @@ class OrderFragment : Fragment() { } override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - restartButton.setOnClickListener { orderManager.restartOrUndo() } - orderManager.restartState.observe(viewLifecycleOwner, Observer { state -> + restartButton.setOnClickListener { liveOrder.restartOrUndo() } + liveOrder.restartState.observe(viewLifecycleOwner, Observer { state -> beginDelayedTransition(view as ViewGroup) if (state == UNDO) { restartButton.setText(R.string.order_undo) @@ -42,28 +46,36 @@ class OrderFragment : Fragment() { restartButton.isEnabled = state == ENABLED completeButton.isEnabled = state == ENABLED } + nextButton.isEnabled = state == ENABLED }) - minusButton.setOnClickListener { orderManager.decreaseSelectedOrderLine() } - plusButton.setOnClickListener { orderManager.increaseSelectedOrderLine() } - orderManager.modifyOrderAllowed.observe(viewLifecycleOwner, Observer { allowed -> + minusButton.setOnClickListener { liveOrder.decreaseSelectedOrderLine() } + plusButton.setOnClickListener { liveOrder.increaseSelectedOrderLine() } + liveOrder.modifyOrderAllowed.observe(viewLifecycleOwner, Observer { allowed -> minusButton.isEnabled = allowed plusButton.isEnabled = allowed }) + orderManager.hasPreviousOrder.observe(viewLifecycleOwner, Observer { hasPreviousOrder -> + prevButton.isEnabled = hasPreviousOrder + }) } override fun onActivityCreated(savedInstanceState: Bundle?) { super.onActivityCreated(savedInstanceState) - reconfigureButton.setOnClickListener { - findNavController().navigate(R.id.action_order_to_merchantSettings) - } - historyButton.setOnClickListener { - findNavController().navigate(R.id.action_order_to_merchantHistory) - } + liveOrder.order.observe(viewLifecycleOwner, Observer { order -> + activity?.title = getString(R.string.order_label_title, order.title) + }) + prevButton.setOnClickListener { orderManager.previousOrder() } + nextButton.setOnClickListener { orderManager.nextOrder() } completeButton.setOnClickListener { - val order = orderManager.order.value ?: return@setOnClickListener + val order = liveOrder.order.value ?: return@setOnClickListener paymentManager.createPayment(order) findNavController().navigate(R.id.action_order_to_processPayment) } + orderManager.currentOrderId.observe(viewLifecycleOwner, Observer { orderId -> + if (args.orderId != orderId) { + findNavController().navigate(actionGlobalOrder(orderId)) + } + }) } override fun onStart() { |