@@ -20,6 +20,7 @@ import androidx.core.view.doOnPreDraw
2020import androidx.core.view.isVisible
2121import androidx.fragment.app.activityViewModels
2222import androidx.fragment.app.viewModels
23+ import androidx.lifecycle.lifecycleScope
2324import androidx.navigation.findNavController
2425import androidx.navigation.fragment.NavHostFragment
2526import androidx.navigation.fragment.findNavController
@@ -66,6 +67,7 @@ import com.woocommerce.android.ui.orders.OrdersCommunicationViewModel
6667import com.woocommerce.android.ui.orders.creation.CodeScannerStatus
6768import com.woocommerce.android.ui.orders.creation.GoogleBarcodeFormatMapper.BarcodeFormat
6869import com.woocommerce.android.ui.orders.creation.OrderCreateEditViewModel
70+ import com.woocommerce.android.ui.orders.creation.customerlist.CustomerListRepository
6971import com.woocommerce.android.ui.orders.details.OrderStatusSelectorDialog
7072import com.woocommerce.android.ui.orders.filters.data.OrderFiltersRepository
7173import com.woocommerce.android.ui.orders.filters.data.OrderListFilterCategory
@@ -78,6 +80,7 @@ import com.woocommerce.android.util.StringUtils
7880import com.woocommerce.android.viewmodel.MultiLiveEvent
7981import com.woocommerce.android.widgets.WCEmptyView.EmptyViewType
8082import dagger.hilt.android.AndroidEntryPoint
83+ import kotlinx.coroutines.launch
8184import org.wordpress.android.util.ToastUtils
8285import javax.inject.Inject
8386import org.wordpress.android.util.ActivityUtils as WPActivityUtils
@@ -117,6 +120,9 @@ class OrderListFragment :
117120 @Inject
118121 internal lateinit var orderFiltersRepository: OrderFiltersRepository
119122
123+ @Inject
124+ internal lateinit var customerListRepository: CustomerListRepository
125+
120126 private var tracker: SelectionTracker <Long >? = null
121127 private var actionMode: ActionMode ? = null
122128 private val selectionPredicate = MutableMultipleSelectionPredicate <Long >(
@@ -691,7 +697,7 @@ class OrderListFragment :
691697 }
692698
693699 is OrdersCommunicationViewModel .CommunicationEvent .CustomerFilterRequested -> {
694- applyCustomerFilter(event.customerId )
700+ applyCustomerFilter(event.customer )
695701 }
696702
697703 else -> event.isHandled = false
@@ -924,14 +930,22 @@ class OrderListFragment :
924930 }
925931 }
926932
927- fun applyCustomerFilter (customerId : Long ) {
933+ fun applyCustomerFilter (customer : Order . Customer ) {
928934 searchQuery = " "
929- orderFiltersRepository.setSelectedFilters(
930- OrderListFilterCategory .CUSTOMER ,
931- listOf (customerId.toString())
932- )
933- viewModel.loadOrders()
934- uiMessageResolver.showSnack(R .string.order_list_customer_filter_applied)
935+
936+ viewLifecycleOwner.lifecycleScope.launch {
937+ customer.customerId?.let { customerId ->
938+ customerListRepository.fetchCustomerByRemoteId(customerId)
939+
940+ orderFiltersRepository.setSelectedFilters(
941+ OrderListFilterCategory .CUSTOMER ,
942+ listOf (customerId.toString())
943+ )
944+ }
945+
946+ viewModel.loadOrders()
947+ uiMessageResolver.showSnack(R .string.order_list_customer_filter_applied)
948+ }
935949 }
936950
937951 private fun showOrderFilters () {
0 commit comments