diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/variations/selector/VariationSelectorRepository.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/variations/selector/VariationSelectorRepository.kt index 32a5c32da1cb..180615bad5a1 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/variations/selector/VariationSelectorRepository.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/variations/selector/VariationSelectorRepository.kt @@ -10,6 +10,7 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.map import kotlinx.coroutines.withContext import org.wordpress.android.fluxc.store.WCProductStore +import org.wordpress.android.fluxc.store.WCProductStore.VariationFilterOption import javax.inject.Inject class VariationSelectorRepository @Inject constructor( @@ -29,7 +30,7 @@ class VariationSelectorRepository @Inject constructor( productId: Long, offset: Int, pageSize: Int, - filterOptions: Map? = null + filterOptions: Map? = null ): Result { return productStore.fetchProductVariations( selectedSite.get(), diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/woopos/home/items/variations/WooPosVariationsDataSource.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/woopos/home/items/variations/WooPosVariationsDataSource.kt index b2199e400779..d579640a63cc 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/woopos/home/items/variations/WooPosVariationsDataSource.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/woopos/home/items/variations/WooPosVariationsDataSource.kt @@ -52,7 +52,8 @@ class WooPosVariationsDataSource @Inject constructor( productId, forceRefresh = true, filterOptions = mapOf( - WCProductStore.VariationFilterOption.STATUS to "publish" + WCProductStore.VariationFilterOption.STATUS to VARIATION_STATUS_PUBLISH, + WCProductStore.VariationFilterOption.DOWNLOADABLE to VARIATION_DOWNLOADABLE_FALSE ) ) if (result.isSuccess) { @@ -74,7 +75,8 @@ class WooPosVariationsDataSource @Inject constructor( val result = handler.loadMore( productId, filterOptions = mapOf( - WCProductStore.VariationFilterOption.STATUS to VARIATION_STATUS_PUBLISH + WCProductStore.VariationFilterOption.STATUS to VARIATION_STATUS_PUBLISH, + WCProductStore.VariationFilterOption.DOWNLOADABLE to VARIATION_DOWNLOADABLE_FALSE ) ) if (result.isSuccess) { @@ -90,6 +92,7 @@ class WooPosVariationsDataSource @Inject constructor( companion object { private const val VARIATION_STATUS_PUBLISH = "publish" + private const val VARIATION_DOWNLOADABLE_FALSE = "false" } } @@ -105,5 +108,6 @@ sealed class FetchResult { } private fun List.applyFilter(): List { - return filter { !it.isDownloadable } + return filter { !it.isDownloadable } // Keeping this filter for now, but it should be removed in the future after + // WC 9.7.0 is released. https://a8c.slack.com/archives/C070SJRA8DP/p1736795937571479 } diff --git a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/woopos/home/variations/WooPosVariationsDataSourceTest.kt b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/woopos/home/variations/WooPosVariationsDataSourceTest.kt index ba244fe8f969..70bc08706cee 100644 --- a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/woopos/home/variations/WooPosVariationsDataSourceTest.kt +++ b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/woopos/home/variations/WooPosVariationsDataSourceTest.kt @@ -151,7 +151,10 @@ class WooPosVariationsDataSourceTest { handler.fetchVariations( productId, forceRefresh = true, - mapOf(WCProductStore.VariationFilterOption.STATUS to "publish") + mapOf( + WCProductStore.VariationFilterOption.STATUS to "publish", + WCProductStore.VariationFilterOption.DOWNLOADABLE to "false" + ) ) ) .thenReturn(Result.failure(exception)) @@ -204,7 +207,13 @@ class WooPosVariationsDataSourceTest { whenever(handler.getVariationsFlow(productId)).thenReturn(flowOf(sampleProducts)) val exception = Exception("Load more failed") whenever( - handler.loadMore(productId, mapOf(WCProductStore.VariationFilterOption.STATUS to "publish")), + handler.loadMore( + productId, + mapOf( + WCProductStore.VariationFilterOption.STATUS to "publish", + WCProductStore.VariationFilterOption.DOWNLOADABLE to "false" + ) + ), ).thenReturn(Result.failure(exception)) whenever(variationsCache.get(productId)).thenReturn(sampleProducts) val sut = WooPosVariationsDataSource(handler, variationsCache) @@ -235,7 +244,10 @@ class WooPosVariationsDataSourceTest { handler.fetchVariations( productId, forceRefresh = true, - mapOf(WCProductStore.VariationFilterOption.STATUS to "publish") + mapOf( + WCProductStore.VariationFilterOption.STATUS to "publish", + WCProductStore.VariationFilterOption.DOWNLOADABLE to "false" + ) ) ).thenReturn(Result.failure(exception)) whenever(variationsCache.get(productId)).thenReturn(emptyList()) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 4811a096d59a..3f433c534c6e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -87,7 +87,7 @@ stripe-terminal = '3.7.1' tinder-statemachine = '0.2.0' wiremock = '2.26.3' wordpress-aztec = 'v2.1.4' -wordpress-fluxc = 'trunk-0264533ce612f74e1ae6fcbaefeb69b252163774' +wordpress-fluxc = 'trunk-657a72d968f89dc2edd6a6e6e57f579643d1e213' wordpress-login = 'trunk-706a58b33ff8f1a2858ae64e51204426ec12fe7b' wordpress-libaddressinput = '0.0.2' wordpress-mediapicker = '0.3.1'