From a2369d8ae3f4517fdc9a9c8ce26e459499433c5c Mon Sep 17 00:00:00 2001 From: Alejo Date: Mon, 18 Nov 2024 21:03:33 -0600 Subject: [PATCH 1/3] reset values to default --- .../woocommerce/android/ui/orders/list/OrderListViewModel.kt | 4 ++++ 1 file changed, 4 insertions(+) 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 a957a31899ba..f36f24e92792 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 @@ -518,6 +518,10 @@ class OrderListViewModel @Inject constructor( _isEmpty.removeSource(isEmpty) _isFetchingFirstPage.removeSource(isFetchingFirstPage) _isLoadingMore.removeSource(isLoadingMore) + + _isFetchingFirstPage.value = false + _isEmpty.value = false + _isLoadingMore.value = false } } From 0b150b1ab3dc409bf614967e4f6cc574b841afa5 Mon Sep 17 00:00:00 2001 From: Alejo Date: Mon, 18 Nov 2024 21:42:46 -0600 Subject: [PATCH 2/3] add release note --- RELEASE-NOTES.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt index a0373887201c..40c9c6da8239 100644 --- a/RELEASE-NOTES.txt +++ b/RELEASE-NOTES.txt @@ -3,6 +3,7 @@ *** For entries which are touching the Android Wear app's, start entry with `[WEAR]` too. 21.2 - [Internal] Changed a way how authenticated web view opened in the IPP flows [https://github.com/woocommerce/woocommerce-android/pull/12908] +- [*] Fixed an inconsistent state while refreshing the orders list [https://github.com/woocommerce/woocommerce-android/pull/12948] ----- - [**][Payments] Fixed a bug when IPP onboarding was not possible to finish from the app [https://github.com/woocommerce/woocommerce-android/pull/12917] - [*] Fixed shipping lines being editable at all states [https://github.com/woocommerce/woocommerce-android/pull/12890] From 156fb3dc07916b359f4e14bd10d1bda8392f934d Mon Sep 17 00:00:00 2001 From: Alejo Date: Tue, 19 Nov 2024 09:32:39 -0600 Subject: [PATCH 3/3] add unit test --- .../ui/orders/OrderListViewModelTest.kt | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/orders/OrderListViewModelTest.kt b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/orders/OrderListViewModelTest.kt index cb754b847453..e4c3b2987269 100644 --- a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/orders/OrderListViewModelTest.kt +++ b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/orders/OrderListViewModelTest.kt @@ -975,6 +975,27 @@ class OrderListViewModelTest : BaseUnitTest() { } //endregion + @Test + fun `when the search view is closed while a search is in progress, then isFetchingFirstPage is reset to false`() { + // Trying to simulate a quick search close + whenever(pagedListWrapper.isFetchingFirstPage).doReturn(MutableLiveData(true), MutableLiveData()) + + viewModel = createViewModel() + + var isFetchingFirstPage: Boolean? = null + viewModel.isFetchingFirstPage.observeForever { + isFetchingFirstPage = it + } + + viewModel.submitSearchOrFilter("query") + viewModel.onSearchClosed() + + assertNotNull(isFetchingFirstPage) + + // Check that isFetchingFirstPage is reset to default value (false) on clearLiveDataSources + assertFalse(isFetchingFirstPage!!) + } + private companion object { const val ANY_SEARCH_QUERY = "search query" }