diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index 505ca99698e2..c5ff6e523fe0 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -6,6 +6,7 @@ - [Internal][Wear] Remove unused dependencies and optimize dependency scopes [https://github.com/woocommerce/woocommerce-android/pull/14710] - [Internal] Remove unused dependencies and optimize dependency scopes [https://github.com/woocommerce/woocommerce-android/pull/14710] - [*] Fix a rare crash in order refund flow [https://github.com/woocommerce/woocommerce-android/pull/14742] +- [*] Fix customer name display when filtering orders from order details [https://github.com/woocommerce/woocommerce-android/pull/14761] 23.4 ----- diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/filters/data/OrderFiltersRepository.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/filters/data/OrderFiltersRepository.kt index e791cec8948c..04bc43ea6b3e 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/filters/data/OrderFiltersRepository.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/orders/filters/data/OrderFiltersRepository.kt @@ -9,12 +9,15 @@ import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.flow.distinctUntilChanged import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach +import kotlinx.coroutines.launch +import org.wordpress.android.fluxc.store.WCCustomerStore import javax.inject.Inject import javax.inject.Singleton @Singleton class OrderFiltersRepository @Inject constructor( private val appSharedPrefs: AppPrefsWrapper, + private val customerStore: WCCustomerStore, private val selectedSite: SelectedSite, @AppCoroutineScope private val appCoroutineScope: CoroutineScope ) { @@ -56,6 +59,14 @@ class OrderFiltersRepository @Inject constructor( } } + fun loadCustomerInfoIfNeeded(customerId: Long) { + appCoroutineScope.launch { + if (customerStore.getCustomerByRemoteId(selectedSite.get(), customerId) == null) { + customerStore.fetchSingleCustomer(selectedSite.get(), customerId) + } + } + } + fun getCurrentFilterSelection(filterCategory: OrderListFilterCategory): List { val preferenceFilters = selectedSite.getIfExists()?.let { site -> appSharedPrefs.getOrderFilters(site.id, filterCategory.name) 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 a76b2c11a286..7ab75bed0f8d 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 @@ -66,6 +66,7 @@ import com.woocommerce.android.ui.orders.OrdersCommunicationViewModel import com.woocommerce.android.ui.orders.creation.CodeScannerStatus import com.woocommerce.android.ui.orders.creation.GoogleBarcodeFormatMapper.BarcodeFormat import com.woocommerce.android.ui.orders.creation.OrderCreateEditViewModel +import com.woocommerce.android.ui.orders.creation.customerlist.CustomerListRepository import com.woocommerce.android.ui.orders.details.OrderStatusSelectorDialog import com.woocommerce.android.ui.orders.filters.data.OrderFiltersRepository import com.woocommerce.android.ui.orders.filters.data.OrderListFilterCategory @@ -117,6 +118,9 @@ class OrderListFragment : @Inject internal lateinit var orderFiltersRepository: OrderFiltersRepository + @Inject + internal lateinit var customerListRepository: CustomerListRepository + private var tracker: SelectionTracker? = null private var actionMode: ActionMode? = null private val selectionPredicate = MutableMultipleSelectionPredicate( @@ -930,6 +934,7 @@ class OrderListFragment : OrderListFilterCategory.CUSTOMER, listOf(customerId.toString()) ) + orderFiltersRepository.loadCustomerInfoIfNeeded(customerId) viewModel.loadOrders() uiMessageResolver.showSnack(R.string.order_list_customer_filter_applied) }