summaryrefslogtreecommitdiff
path: root/app/src/main/java/net/taler/merchantpos/order/OrderFragment.kt
diff options
context:
space:
mode:
authorTorsten Grote <t@grobox.de>2020-02-25 18:11:16 -0300
committerTorsten Grote <t@grobox.de>2020-02-26 15:08:05 -0300
commitffb36499d1d1cedacc20c2b8a59efe7134ed7f34 (patch)
treecc261a73c77572dde9a10872fe360b2f28a2aef7 /app/src/main/java/net/taler/merchantpos/order/OrderFragment.kt
parent4aa85912e86b8fae15a3ac1d78722c42059d667b (diff)
downloadmerchant-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.kt36
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() {