taler-android

Android apps for GNU Taler (wallet, PoS, cashier)
Log | Files | Refs | README | LICENSE

commit 5b23d0be8ac23cdba689e2ceb7c675fb7f958366
parent 823cfac4a30224146c544c62310dc835f83f51f5
Author: Bohdan Potuzhnyi <bohdan.potuzhnyi@gmail.com>
Date:   Tue, 14 Apr 2026 14:37:16 +0200

[merchant-terminal] Vladas requested updates 4

Diffstat:
Mmerchant-terminal/src/main/java/net/taler/merchantpos/order/OrderStateFragment.kt | 18+++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/merchant-terminal/src/main/java/net/taler/merchantpos/order/OrderStateFragment.kt b/merchant-terminal/src/main/java/net/taler/merchantpos/order/OrderStateFragment.kt @@ -110,13 +110,21 @@ class OrderStateFragment : Fragment() { if (position >= 0) { ui.orderList.scrollToPosition(position) ui.orderList.post { this.tracker?.select(it.id) } + return@setItems } } - // workaround for bug: SelectionObserver doesn't update when removing selected item - if (tracker.hasSelection()) { - val key = tracker.selection.first() - val product = order.products.find { it.id == key } - if (product == null) tracker.clearSelection() + val selectedKey = tracker.selection.firstOrNull() + val selectedProduct = selectedKey?.let { key -> + order.products.find { it.id == key } + } + if (selectedProduct == null) { + val fallbackProduct = order.products.lastOrNull() + tracker.clearSelection() + if (fallbackProduct == null) { + liveOrder.selectOrderLine(null) + } else { + ui.orderList.post { this.tracker?.select(fallbackProduct.id) } + } } } }