Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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) {
Expand All @@ -278,6 +280,7 @@ class ProductListFragment :
}
}
}
scanBarcodeMenuItem?.isVisible = !productListViewModel.isSquarePluginActive()
}

private fun getSearchQueryHint(): String {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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
Expand All @@ -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"
Expand Down Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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() {
Expand All @@ -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
Expand All @@ -65,7 +69,9 @@ class ProductListViewModelTest : BaseUnitTest() {
productRepository,
networkStatus,
mediaFileUploadHandler,
analyticsTracker
analyticsTracker,
selectedSite,
wooCommerceStore
)
)
}
Expand Down