From 6b6bcf4906e587a992d9b0c7c8b80197a385b058 Mon Sep 17 00:00:00 2001 From: Rossana <30724184+rossanafmenezes@users.noreply.github.com> Date: Tue, 28 Nov 2023 16:37:21 -0500 Subject: [PATCH 1/6] Check if Square plugin is active --- .../android/ui/products/ProductListViewModel.kt | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListViewModel.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListViewModel.kt index 5e6dc600a5f3..b9fa601ebc84 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListViewModel.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListViewModel.kt @@ -23,6 +23,7 @@ import com.woocommerce.android.extensions.EXPAND_COLLAPSE_ANIMATION_DURATION_MIL import com.woocommerce.android.model.Product import com.woocommerce.android.model.RequestResult import com.woocommerce.android.tools.NetworkStatus +import com.woocommerce.android.tools.SelectedSite import com.woocommerce.android.ui.media.MediaFileUploadHandler import com.woocommerce.android.ui.products.ProductListViewModel.ProductListEvent.ScrollToTop import com.woocommerce.android.ui.products.ProductListViewModel.ProductListEvent.SelectProducts @@ -54,6 +55,7 @@ import org.wordpress.android.fluxc.store.WCProductStore.ProductSorting.DATE_DESC import org.wordpress.android.fluxc.store.WCProductStore.ProductSorting.TITLE_ASC import org.wordpress.android.fluxc.store.WCProductStore.ProductSorting.TITLE_DESC import org.wordpress.android.fluxc.store.WCProductStore.SkuSearchOptions +import org.wordpress.android.fluxc.store.WooCommerceStore import javax.inject.Inject @HiltViewModel @@ -62,7 +64,9 @@ class ProductListViewModel @Inject constructor( private val productRepository: ProductListRepository, private val networkStatus: NetworkStatus, mediaFileUploadHandler: MediaFileUploadHandler, - private val analyticsTracker: AnalyticsTrackerWrapper + private val analyticsTracker: AnalyticsTrackerWrapper, + private val selectedSite: SelectedSite, + private val wooCommerceStore: WooCommerceStore, ) : ScopedViewModel(savedState) { companion object { private const val KEY_PRODUCT_FILTER_OPTIONS = "key_product_filter_options" @@ -640,6 +644,14 @@ class ProductListViewModel @Inject constructor( triggerEvent(ShowUpdateDialog.Status(selectedProductsRemoteIds)) } + fun isSquarePluginActive(): Boolean { + val plugin = wooCommerceStore.getSitePlugin( + site = selectedSite.get(), + plugin = WooCommerceStore.WooPlugin.WOO_SQUARE + ) + return plugin != null && plugin.isActive + } + object OnProductSortingChanged @Parcelize From 10afb5a8c0315d7a52351ae2fe9dd1d255e7b6ec Mon Sep 17 00:00:00 2001 From: Rossana <30724184+rossanafmenezes@users.noreply.github.com> Date: Tue, 28 Nov 2023 16:37:52 -0500 Subject: [PATCH 2/6] Add ScanIcon visibility based on Square Plugin being active or not --- .../woocommerce/android/ui/products/ProductListFragment.kt | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListFragment.kt index b96491b13410..99ffee037c5a 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListFragment.kt @@ -101,6 +101,7 @@ class ProductListFragment : private val skeletonView = SkeletonView() private var searchMenuItem: MenuItem? = null + private var scanBarcodeMenuItem: MenuItem? = null private var searchView: SearchView? = null private var trashProductUndoSnack: Snackbar? = null @@ -252,6 +253,7 @@ class ProductListFragment : searchMenuItem = menu.findItem(R.id.menu_search) searchView = searchMenuItem?.actionView as SearchView? searchView?.queryHint = getString(R.string.product_search_hint) + scanBarcodeMenuItem = menu.findItem(R.id.menu_scan_barcode) } override fun onPrepareMenu(menu: Menu) { @@ -263,6 +265,7 @@ class ProductListFragment : */ private fun refreshOptionsMenu() { val showSearch = shouldShowSearchMenuItem() + val showScan = !productListViewModel.isSquarePluginActive() searchMenuItem?.let { menuItem -> if (menuItem.isVisible != showSearch) menuItem.isVisible = showSearch @@ -278,6 +281,9 @@ class ProductListFragment : } } } + scanBarcodeMenuItem?.let { menuItem -> + if (showScan) menuItem.isVisible else menuItem.isVisible = false + } } private fun getSearchQueryHint(): String { From 4591a87a74c18912eae60ab63af8ac9b5ede4ee6 Mon Sep 17 00:00:00 2001 From: Rossana <30724184+rossanafmenezes@users.noreply.github.com> Date: Tue, 28 Nov 2023 16:38:12 -0500 Subject: [PATCH 3/6] Fix tests --- .../android/ui/products/ProductListViewModelTest.kt | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/products/ProductListViewModelTest.kt b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/products/ProductListViewModelTest.kt index 2af2c70546f4..b3372da4f58f 100644 --- a/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/products/ProductListViewModelTest.kt +++ b/WooCommerce/src/test/kotlin/com/woocommerce/android/ui/products/ProductListViewModelTest.kt @@ -16,6 +16,7 @@ import com.woocommerce.android.extensions.takeIfNotEqualTo import com.woocommerce.android.model.Product import com.woocommerce.android.model.RequestResult import com.woocommerce.android.tools.NetworkStatus +import com.woocommerce.android.tools.SelectedSite import com.woocommerce.android.ui.media.MediaFileUploadHandler import com.woocommerce.android.ui.products.ProductListViewModel.ProductListEvent.ShowProductFilterScreen import com.woocommerce.android.ui.products.ProductListViewModel.ProductListEvent.ShowProductSortingBottomSheet @@ -39,6 +40,7 @@ import org.mockito.kotlin.times import org.mockito.kotlin.verify import org.mockito.kotlin.whenever import org.wordpress.android.fluxc.store.WCProductStore.ProductSorting +import org.wordpress.android.fluxc.store.WooCommerceStore @ExperimentalCoroutinesApi class ProductListViewModelTest : BaseUnitTest() { @@ -48,6 +50,8 @@ class ProductListViewModelTest : BaseUnitTest() { private val analyticsTracker: AnalyticsTrackerWrapper = mock() private val savedStateHandle: SavedStateHandle = SavedStateHandle() + private val wooCommerceStore: WooCommerceStore = mock() + private val selectedSite: SelectedSite = mock() private val productList = ProductTestUtils.generateProductList() private lateinit var viewModel: ProductListViewModel @@ -65,7 +69,9 @@ class ProductListViewModelTest : BaseUnitTest() { productRepository, networkStatus, mediaFileUploadHandler, - analyticsTracker + analyticsTracker, + selectedSite, + wooCommerceStore ) ) } From 40005b67ffc1571306f03e67fd42e389d9a1e6df Mon Sep 17 00:00:00 2001 From: Rossana <30724184+rossanafmenezes@users.noreply.github.com> Date: Tue, 28 Nov 2023 17:12:14 -0500 Subject: [PATCH 4/6] FluxC version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index 2ff3f4fe96db..fe614301d677 100644 --- a/build.gradle +++ b/build.gradle @@ -94,7 +94,7 @@ tasks.register("installGitHooks", Copy) { } ext { - fluxCVersion = '2.56.0' + fluxCVersion = '2912-de56923eec0f052e2f55c2ffaf0561fd52b11471' glideVersion = '4.13.2' coilVersion = '2.1.0' constraintLayoutVersion = '1.2.0' From 3b4a772772e3c5d50bcf642260216dfc72f0f800 Mon Sep 17 00:00:00 2001 From: Rossana <30724184+rossanafmenezes@users.noreply.github.com> Date: Wed, 29 Nov 2023 15:31:37 -0500 Subject: [PATCH 5/6] Simplyfy barcode scan icon visilibity logic --- .../woocommerce/android/ui/products/ProductListFragment.kt | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListFragment.kt index 99ffee037c5a..eb0452e2c68d 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductListFragment.kt @@ -265,7 +265,6 @@ class ProductListFragment : */ private fun refreshOptionsMenu() { val showSearch = shouldShowSearchMenuItem() - val showScan = !productListViewModel.isSquarePluginActive() searchMenuItem?.let { menuItem -> if (menuItem.isVisible != showSearch) menuItem.isVisible = showSearch @@ -281,9 +280,7 @@ class ProductListFragment : } } } - scanBarcodeMenuItem?.let { menuItem -> - if (showScan) menuItem.isVisible else menuItem.isVisible = false - } + scanBarcodeMenuItem?.isVisible = !productListViewModel.isSquarePluginActive() } private fun getSearchQueryHint(): String { From 5d7d4323bf612c1ea35da0a67f0a36b167e21c7e Mon Sep 17 00:00:00 2001 From: samiuelson Date: Fri, 8 Dec 2023 10:38:10 +0100 Subject: [PATCH 6/6] Update fluxc version --- build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle b/build.gradle index b50ad2d26972..ec04632da19d 100644 --- a/build.gradle +++ b/build.gradle @@ -94,7 +94,7 @@ tasks.register("installGitHooks", Copy) { } ext { - fluxCVersion = 'trunk-b4e51008f7200eba1dfdd22ca370fce450ce93b0' + fluxCVersion = 'trunk-3f65981193242842166b7428f409fd2d290076ac' glideVersion = '4.13.2' coilVersion = '2.1.0' constraintLayoutVersion = '1.2.0'