From 3cc0672411c124a00566d19b746a2267dbabfae0 Mon Sep 17 00:00:00 2001 From: Hafiz Rahman Date: Tue, 31 Dec 2024 16:14:49 +0700 Subject: [PATCH 01/10] First attempt at bulk order status configuration change persistence. --- .../android/ui/orders/list/OrderListFragment.kt | 15 +++++++++++++++ .../android/ui/orders/list/OrderListViewModel.kt | 7 +++++++ 2 files changed, 22 insertions(+) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt index 98b1c3c313f..3c32d131817 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt @@ -406,6 +406,18 @@ class OrderListFragment : outState.putBoolean(LAST_WINDOW_SIZE_WAS_LARGER_THAN_COMPACT, true) } } + tracker?.onSaveInstanceState(outState) + } + + override fun onViewStateRestored(savedInstanceState: Bundle?) { + tracker?.run { + onRestoreInstanceState(savedInstanceState) + if (hasSelection()) { + viewModel.onRestoreSelection(selection.toList()) + } + } + + super.onViewStateRestored(savedInstanceState) } override fun onDestroyView() { @@ -414,6 +426,8 @@ class OrderListFragment : searchView = null orderListMenu = null searchMenuItem = null + tracker = null + actionMode = null super.onDestroyView() _binding = null } @@ -614,6 +628,7 @@ class OrderListFragment : is OrderListViewModel.OrderListEvent.ShowUpdateStatusDialog -> { showBulkUpdateStatusDialog(event.currentStatus, event.orderStatusList) } + is OrderListViewModel.OrderListEvent.SelectOrders -> tracker?.setItemsSelected(event.ordersIds, true) is MultiLiveEvent.Event.ShowSnackbar -> uiMessageResolver.showSnack(event.message) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt index 83cc7d8f05e..89a51ab0420 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt @@ -55,6 +55,7 @@ import com.woocommerce.android.ui.orders.filters.domain.GetWCOrderListDescriptor import com.woocommerce.android.ui.orders.filters.domain.GetWCOrderListDescriptorWithFiltersAndSearchQuery import com.woocommerce.android.ui.orders.filters.domain.ShouldShowCreateTestOrderScreen import com.woocommerce.android.ui.orders.list.OrderListViewModel.OrderListEvent.RetryLoadingOrders +import com.woocommerce.android.ui.orders.list.OrderListViewModel.OrderListEvent.SelectOrders import com.woocommerce.android.ui.orders.list.OrderListViewModel.OrderListEvent.ShowErrorSnack import com.woocommerce.android.ui.orders.list.OrderListViewModel.OrderListEvent.ShowOrderFilters import com.woocommerce.android.util.CoroutineDispatchers @@ -989,6 +990,10 @@ class OrderListViewModel @Inject constructor( exitSelectionMode() } + fun onRestoreSelection(selectedOrdersIds: List) { + triggerEvent(SelectOrders(selectedOrdersIds)) + } + sealed class OrderListEvent : Event() { data class ShowErrorSnack(@StringRes val messageRes: Int) : OrderListEvent() object ShowOrderFilters : OrderListEvent() @@ -1046,6 +1051,8 @@ class OrderListViewModel @Inject constructor( return result } } + + data class SelectOrders(val ordersIds: List) : OrderListEvent() } @Parcelize From 1650997e9a3716f9fb93757017b6e15e6c4f9d16 Mon Sep 17 00:00:00 2001 From: Hafiz Rahman Date: Tue, 31 Dec 2024 19:11:32 +0700 Subject: [PATCH 02/10] Delete unneeded class --- .../android/ui/orders/DefaultOrderListItemLookup.kt | 9 --------- 1 file changed, 9 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/DefaultOrderListItemLookup.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/DefaultOrderListItemLookup.kt index d1b04ccd209..51e469c0632 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/DefaultOrderListItemLookup.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/DefaultOrderListItemLookup.kt @@ -30,12 +30,3 @@ class DefaultOrderItemDetailsLookup( override fun getPosition() = position override fun getSelectionKey() = orderId } - -class SelectableOrderItemDetailsLookup( - private val position: Int, - private val orderId: Long -) : ItemDetailsLookup.ItemDetails() { - override fun getPosition() = position - override fun getSelectionKey() = orderId - override fun inSelectionHotspot(e: MotionEvent) = true -} From d3184964977a41d4b1308e4237a614b49949dc3d Mon Sep 17 00:00:00 2001 From: Hafiz Rahman Date: Tue, 31 Dec 2024 19:34:22 +0700 Subject: [PATCH 03/10] Simplify restoring selected items. --- .../android/ui/orders/list/OrderListFragment.kt | 3 +-- .../android/ui/orders/list/OrderListViewModel.kt | 7 ------- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt index 3c32d131817..a8ea68a8401 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt @@ -413,7 +413,7 @@ class OrderListFragment : tracker?.run { onRestoreInstanceState(savedInstanceState) if (hasSelection()) { - viewModel.onRestoreSelection(selection.toList()) + setItemsSelected(selection.toList(), true) } } @@ -628,7 +628,6 @@ class OrderListFragment : is OrderListViewModel.OrderListEvent.ShowUpdateStatusDialog -> { showBulkUpdateStatusDialog(event.currentStatus, event.orderStatusList) } - is OrderListViewModel.OrderListEvent.SelectOrders -> tracker?.setItemsSelected(event.ordersIds, true) is MultiLiveEvent.Event.ShowSnackbar -> uiMessageResolver.showSnack(event.message) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt index 89a51ab0420..83cc7d8f05e 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt @@ -55,7 +55,6 @@ import com.woocommerce.android.ui.orders.filters.domain.GetWCOrderListDescriptor import com.woocommerce.android.ui.orders.filters.domain.GetWCOrderListDescriptorWithFiltersAndSearchQuery import com.woocommerce.android.ui.orders.filters.domain.ShouldShowCreateTestOrderScreen import com.woocommerce.android.ui.orders.list.OrderListViewModel.OrderListEvent.RetryLoadingOrders -import com.woocommerce.android.ui.orders.list.OrderListViewModel.OrderListEvent.SelectOrders import com.woocommerce.android.ui.orders.list.OrderListViewModel.OrderListEvent.ShowErrorSnack import com.woocommerce.android.ui.orders.list.OrderListViewModel.OrderListEvent.ShowOrderFilters import com.woocommerce.android.util.CoroutineDispatchers @@ -990,10 +989,6 @@ class OrderListViewModel @Inject constructor( exitSelectionMode() } - fun onRestoreSelection(selectedOrdersIds: List) { - triggerEvent(SelectOrders(selectedOrdersIds)) - } - sealed class OrderListEvent : Event() { data class ShowErrorSnack(@StringRes val messageRes: Int) : OrderListEvent() object ShowOrderFilters : OrderListEvent() @@ -1051,8 +1046,6 @@ class OrderListViewModel @Inject constructor( return result } } - - data class SelectOrders(val ordersIds: List) : OrderListEvent() } @Parcelize From 56847fd3b7630c1f7ec41afdb3f1bd28f8e1d2aa Mon Sep 17 00:00:00 2001 From: Hafiz Rahman Date: Tue, 31 Dec 2024 19:50:38 +0700 Subject: [PATCH 04/10] Refactor to avoid notifyDataSetChanged, as it also resets the selection state. --- .../woocommerce/android/ui/orders/list/OrderListAdapter.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt index 5eee41474ed..9fb99a760b5 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt @@ -126,7 +126,11 @@ class OrderListAdapter( fun setOrderStatusOptions(orderStatusOptions: Map) { if (orderStatusOptions.keys != activeOrderStatusMap.keys) { this.activeOrderStatusMap = orderStatusOptions - notifyDataSetChanged() + for (position in 0 until itemCount) { + if (getItem(position) is OrderListItemUI) { + notifyItemChanged(position) + } + } } } From 2eea9e089641d9814fd199970a53629e2a9e3774 Mon Sep 17 00:00:00 2001 From: Hafiz Rahman Date: Tue, 31 Dec 2024 20:43:47 +0700 Subject: [PATCH 05/10] Simplify as onRestoreInstanceState alone automatically restores selection --- .../woocommerce/android/ui/orders/list/OrderListFragment.kt | 3 --- 1 file changed, 3 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt index a8ea68a8401..2e355b7b328 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt @@ -412,9 +412,6 @@ class OrderListFragment : override fun onViewStateRestored(savedInstanceState: Bundle?) { tracker?.run { onRestoreInstanceState(savedInstanceState) - if (hasSelection()) { - setItemsSelected(selection.toList(), true) - } } super.onViewStateRestored(savedInstanceState) From 9a76a8ec84934189c3ddf792ffb0efc2850bd3a3 Mon Sep 17 00:00:00 2001 From: jorgemucientesfayos Date: Thu, 2 Jan 2025 12:57:28 +0100 Subject: [PATCH 06/10] First attempt to fix loosing selecting state when loading next page --- .../android/ui/orders/OrderSelectionItemKeyProvider.kt | 8 ++------ .../android/ui/orders/list/OrderListAdapter.kt | 2 ++ 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/OrderSelectionItemKeyProvider.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/OrderSelectionItemKeyProvider.kt index b776f59bedb..f332adcac4f 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/OrderSelectionItemKeyProvider.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/OrderSelectionItemKeyProvider.kt @@ -17,10 +17,6 @@ class OrderSelectionItemKeyProvider(private val recyclerView: RecyclerView) : } } - override fun getPosition(key: Long): Int { - return (recyclerView.adapter as? OrderListAdapter)?.currentList - ?.indexOfFirst { item -> - item is OrderListItemUIType.OrderListItemUI && item.orderId == key - } ?: RecyclerView.NO_POSITION - } + override fun getPosition(key: Long): Int = + (recyclerView.adapter as? OrderListAdapter)?.orderIdAndPosition[key] ?: RecyclerView.NO_POSITION } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt index 9fb99a760b5..84847cdf08b 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt @@ -38,6 +38,7 @@ class OrderListAdapter( var activeOrderStatusMap: Map = emptyMap() var allOrderIds: List = listOf() var tracker: SelectionTracker? = null + val orderIdAndPosition = mutableMapOf() override fun getItemViewType(position: Int): Int { return when (getItem(position)) { @@ -97,6 +98,7 @@ class OrderListAdapter( allOrderIds, isActivated = tracker?.isSelected(item.orderId) ?: false ) + orderIdAndPosition[item.orderId] = position } is SectionHeaderViewHolder -> { if (BuildConfig.DEBUG && item !is SectionHeader) { From c68abf6e8ca160627a09975dfbd518eef321bafb Mon Sep 17 00:00:00 2001 From: Hafiz Rahman Date: Thu, 2 Jan 2025 19:32:54 +0700 Subject: [PATCH 07/10] Save and restore `orderIdAndPosition` to survive configuration change, using viewModel as its storage. --- .../android/ui/orders/list/OrderListAdapter.kt | 2 +- .../android/ui/orders/list/OrderListFragment.kt | 8 ++++++++ .../android/ui/orders/list/OrderListViewModel.kt | 2 ++ 3 files changed, 11 insertions(+), 1 deletion(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt index 84847cdf08b..3bf8a0ce850 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt @@ -38,7 +38,7 @@ class OrderListAdapter( var activeOrderStatusMap: Map = emptyMap() var allOrderIds: List = listOf() var tracker: SelectionTracker? = null - val orderIdAndPosition = mutableMapOf() + var orderIdAndPosition = mutableMapOf() override fun getItemViewType(position: Int): Int { return when (getItem(position)) { diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt index 2e355b7b328..065d04b275e 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt @@ -407,11 +407,19 @@ class OrderListFragment : } } tracker?.onSaveInstanceState(outState) + viewModel.orderIdAndPositionBackup = + ((binding.orderListView.ordersList.adapter as? OrderListAdapter)?.orderIdAndPosition + ?: emptyMap()) as MutableMap } override fun onViewStateRestored(savedInstanceState: Bundle?) { tracker?.run { onRestoreInstanceState(savedInstanceState) + (binding.orderListView.ordersList.adapter as? OrderListAdapter)?.orderIdAndPosition = + viewModel.orderIdAndPositionBackup + if (hasSelection()) { + setItemsSelected(selection.toList(), true) + } } super.onViewStateRestored(savedInstanceState) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt index 83cc7d8f05e..b4a7c91c40d 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListViewModel.kt @@ -182,6 +182,8 @@ class OrderListViewModel @Inject constructor( val orderId: LiveData = savedState.getLiveData("orderId") + var orderIdAndPositionBackup = mutableMapOf() + private val _emptyViewType: ThrottleLiveData by lazy { ThrottleLiveData( offset = EMPTY_VIEW_THROTTLE, From 8b9df9b89c15398bb90fe4b93d80cc7255ca907c Mon Sep 17 00:00:00 2001 From: Hafiz Rahman Date: Thu, 2 Jan 2025 21:03:32 +0700 Subject: [PATCH 08/10] Edge case fix where if moving from portrait to landscape to portait again, show list panel if on bulk selection mode. --- .../woocommerce/android/ui/orders/list/OrderListFragment.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt index 065d04b275e..61ab259671a 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt @@ -356,7 +356,11 @@ class OrderListFragment : private fun adjustLayoutForNonTablet(savedInstanceState: Bundle?) { if (wasLastWindowSizeLargerThanCompact(savedInstanceState)) { - displayDetailPaneOnly() + if (viewModel.isSelecting()) { + displayListPaneOnly() + } else { + displayDetailPaneOnly() + } } else { displayListPaneOnly() } From 9b952435f0ce4ed29f32596a4c996f7a3fc8a6dc Mon Sep 17 00:00:00 2001 From: jorgemucientesfayos Date: Thu, 2 Jan 2025 16:02:50 +0100 Subject: [PATCH 09/10] Fix keeping of the selection when rotating the device --- .../ui/orders/list/OrderListAdapter.kt | 25 +++++++++++++++++++ .../ui/orders/list/OrderListFragment.kt | 19 -------------- 2 files changed, 25 insertions(+), 19 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt index 3bf8a0ce850..8e54f1bf0a3 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListAdapter.kt @@ -25,6 +25,7 @@ import com.woocommerce.android.ui.orders.list.OrderListItemUIType.SectionHeader import com.woocommerce.android.util.CurrencyFormatter import com.woocommerce.android.widgets.tags.TagView import org.wordpress.android.fluxc.model.WCOrderStatusModel + class OrderListAdapter( val listener: OrderListListener, val currencyFormatter: CurrencyFormatter @@ -62,10 +63,12 @@ class OrderListAdapter( ) ) } + VIEW_TYPE_LOADING -> { val view = inflater.inflate(R.layout.skeleton_order_list_item_auto, parent, false) LoadingViewHolder(view) } + VIEW_TYPE_SECTION_HEADER -> { SectionHeaderViewHolder( OrderListHeaderBinding.inflate( @@ -75,6 +78,7 @@ class OrderListAdapter( ) ) } + else -> { // Fail fast if a new view type is added so we can handle it throw IllegalStateException("The view type '$viewType' needs to be handled") @@ -100,6 +104,7 @@ class OrderListAdapter( ) orderIdAndPosition[item.orderId] = position } + is SectionHeaderViewHolder -> { if (BuildConfig.DEBUG && item !is SectionHeader) { error( @@ -109,6 +114,7 @@ class OrderListAdapter( } holder.onBind((item as SectionHeader)) } + else -> {} } } @@ -190,6 +196,7 @@ class OrderListAdapter( viewBinding.root.context.getColor(R.color.color_item_selected) ) } + else -> { viewBinding.orderItemLayout.setBackgroundColor(Color.TRANSPARENT) } @@ -215,6 +222,7 @@ class OrderListAdapter( extras[SwipeToComplete.OLD_STATUS] = orderItemUI.status this.itemView.setOnClickListener { + if (shouldPreventDetailNavigation(orderId)) return@setOnClickListener listener.openOrderDetail( orderId = orderItemUI.orderId, allOrderIds = allOrderIds, @@ -224,6 +232,23 @@ class OrderListAdapter( } } + // Some edge cases in order selection mode, like tapping the screen with 4 fingers or using TalkBack, + // cause the order's onClick listener to gain focus over the selection tracker. + // This quick fix will prevent the app from entering an unexpected status when the app is in selection mode. + private fun shouldPreventDetailNavigation(orderId: Long): Boolean { + if (tracker?.selection?.size() != 0) { + tracker?.let { selectionTracker -> + if (selectionTracker.isSelected(orderId)) { + selectionTracker.deselect(orderId) + } else { + selectionTracker.select(orderId) + } + } + return true + } + return false + } + /** * Converts the order status label into an [OrderStatusTag], creates the associated [TagView], * and add it to the holder. No need to trim the label text since this is done in [OrderStatusTag] diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt index 61ab259671a..5b80af9052e 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt @@ -916,23 +916,6 @@ class OrderListFragment : binding.orderListView.submitPagedList(pagedListData) } - // Some edge cases in order selection mode, like tapping the screen with 4 fingers or using TalkBack, - // cause the order's onClick listener to gain focus over the selection tracker. - // This quick fix will prevent the app from entering an unexpected status when the app is in selection mode. - private fun shouldPreventDetailNavigation(orderId: Long): Boolean { - if (viewModel.isSelecting()) { - tracker?.let { selectionTracker -> - if (selectionTracker.isSelected(orderId)) { - selectionTracker.deselect(orderId) - } else { - selectionTracker.select(orderId) - } - } - return true - } - return false - } - override fun openOrderDetail( orderId: Long, allOrderIds: List, @@ -940,8 +923,6 @@ class OrderListFragment : sharedView: View?, startPaymentsFlow: Boolean, ) { - if (shouldPreventDetailNavigation(orderId)) return - viewModel.trackOrderClickEvent( orderId, orderStatus, From 5639575814e37988a427cea7bfb95dd93e77e698 Mon Sep 17 00:00:00 2001 From: jorgemucientesfayos Date: Thu, 2 Jan 2025 17:55:13 +0100 Subject: [PATCH 10/10] Fix detekt long line issue --- .../android/ui/orders/list/OrderListFragment.kt | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt index 5b80af9052e..b9705b75ae7 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/list/OrderListFragment.kt @@ -412,8 +412,8 @@ class OrderListFragment : } tracker?.onSaveInstanceState(outState) viewModel.orderIdAndPositionBackup = - ((binding.orderListView.ordersList.adapter as? OrderListAdapter)?.orderIdAndPosition - ?: emptyMap()) as MutableMap + ((binding.orderListView.ordersList.adapter as? OrderListAdapter)?.orderIdAndPosition ?: emptyMap()) + as MutableMap } override fun onViewStateRestored(savedInstanceState: Bundle?) { @@ -631,9 +631,11 @@ class OrderListFragment : actionText = event.actionText, action = event.action ) + is OrderListViewModel.OrderListEvent.RetryLoadingOrders -> refreshOrders() is OrderListViewModel.OrderListEvent.OpenOrderCreationWithSimplePaymentsMigration -> openOrderCreationFragment(indicateSimplePaymentsMigration = true) + is OrderListViewModel.OrderListEvent.ShowUpdateStatusDialog -> { showBulkUpdateStatusDialog(event.currentStatus, event.orderStatusList) } @@ -650,6 +652,7 @@ class OrderListFragment : viewModel.trashOrder(event.orderId) selectedOrder.selectOrder(-1L) } + else -> event.isHandled = false } }