From 5f39318cbbd6d3cfea40499afff3faea34c368cb Mon Sep 17 00:00:00 2001 From: anitaa Date: Mon, 10 Aug 2020 20:18:24 +0530 Subject: [PATCH 01/17] Added logic to display grouped product count if available --- .../com/woocommerce/android/model/Product.kt | 4 +++- .../ui/products/ProductDetailCardBuilder.kt | 14 ++++++++++++++ WooCommerce/src/main/res/values/strings.xml | 2 ++ 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/model/Product.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/model/Product.kt index e93546bb7c1..b70d4c9ab09 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/model/Product.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/model/Product.kt @@ -73,6 +73,7 @@ data class Product( val menuOrder: Int, val categories: List, val tags: List, + val groupedProductIds: List, override val length: Float, override val width: Float, override val height: Float, @@ -536,7 +537,8 @@ fun WCProductModel.toAppModel(): Product { it.name, it.slug ) - } + }, + groupedProductIds = this.getGroupedProductIds() ) } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt index e93b11d0f05..a082f0a2960 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt @@ -104,6 +104,7 @@ class ProductDetailCardBuilder( return ProductPropertyCard( type = SECONDARY, properties = listOf( + product.groupedProducts(), product.productType(), product.productReviews(), product.inventory(), @@ -469,6 +470,19 @@ class ProductDetailCardBuilder( } } + private fun Product.groupedProducts(): ProductProperty? { + val groupedProductsSize = this.groupedProductIds.size + return if (FeatureFlag.PRODUCT_RELEASE_M3.isEnabled() && groupedProductsSize > 0) { + ComplexProperty( + R.string.grouped_products, + resources.getString(R.string.grouped_products_count, groupedProductsSize), + R.drawable.ic_widgets + ) + } else { + null + } + } + private fun Product.title(): ProductProperty { val name = this.name.fastStripHtml() return if (isSimple(this) || FeatureFlag.PRODUCT_RELEASE_M3.isEnabled()) { diff --git a/WooCommerce/src/main/res/values/strings.xml b/WooCommerce/src/main/res/values/strings.xml index 538b4465433..544df99dc18 100644 --- a/WooCommerce/src/main/res/values/strings.xml +++ b/WooCommerce/src/main/res/values/strings.xml @@ -606,6 +606,8 @@ Adding tag Error occurred when adding tags Change product type + Grouped products + %d products From ac3e931c4c94bc7256a27f238aa12aa488d2b10f Mon Sep 17 00:00:00 2001 From: anitaa Date: Tue, 11 Aug 2020 09:58:52 +0530 Subject: [PATCH 02/17] Added click listener to the grouped products row --- .../ui/products/GroupedProductListFragment.kt | 5 +++++ .../ui/products/ProductDetailCardBuilder.kt | 8 +++++++- .../ui/products/ProductNavigationTarget.kt | 1 + .../android/ui/products/ProductNavigator.kt | 19 +++++++++++++------ .../res/navigation/nav_graph_products.xml | 14 ++++++++++++++ 5 files changed, 40 insertions(+), 7 deletions(-) create mode 100644 WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListFragment.kt diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListFragment.kt new file mode 100644 index 00000000000..9cf861461e4 --- /dev/null +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListFragment.kt @@ -0,0 +1,5 @@ +package com.woocommerce.android.ui.products + +import com.woocommerce.android.ui.base.BaseFragment + +class GroupedProductListFragment : BaseFragment() diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt index a082f0a2960..1d2157c25ff 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt @@ -7,6 +7,7 @@ import com.woocommerce.android.extensions.addIfNotEmpty import com.woocommerce.android.extensions.fastStripHtml import com.woocommerce.android.extensions.filterNotEmpty import com.woocommerce.android.model.Product +import com.woocommerce.android.ui.products.ProductNavigationTarget.ViewGroupedProducts import com.woocommerce.android.ui.products.ProductNavigationTarget.ViewProductCategories import com.woocommerce.android.ui.products.ProductNavigationTarget.ViewProductDescriptionEditor import com.woocommerce.android.ui.products.ProductNavigationTarget.ViewProductExternalLink @@ -477,7 +478,12 @@ class ProductDetailCardBuilder( R.string.grouped_products, resources.getString(R.string.grouped_products_count, groupedProductsSize), R.drawable.ic_widgets - ) + ) { + // TODO: add click event + viewModel.onEditProductCardClicked( + ViewGroupedProducts(this.remoteId) + ) + } } else { null } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigationTarget.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigationTarget.kt index 4ceb06b6342..d677c390517 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigationTarget.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigationTarget.kt @@ -49,4 +49,5 @@ sealed class ProductNavigationTarget : Event() { data class ViewProductDetailBottomSheet(val remoteId: Long) : ProductNavigationTarget() data class ViewProductTypes(val remoteId: Long) : ProductNavigationTarget() data class ViewProductReviews(val remoteId: Long) : ProductNavigationTarget() + data class ViewGroupedProducts(val remoteId: Long) : ProductNavigationTarget() } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigator.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigator.kt index 2fa53cf80e5..7f394bb1ae8 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigator.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigator.kt @@ -9,6 +9,7 @@ import com.woocommerce.android.extensions.navigateSafely import com.woocommerce.android.ui.products.ProductNavigationTarget.AddProductCategory import com.woocommerce.android.ui.products.ProductNavigationTarget.ExitProduct import com.woocommerce.android.ui.products.ProductNavigationTarget.ShareProduct +import com.woocommerce.android.ui.products.ProductNavigationTarget.ViewGroupedProducts import com.woocommerce.android.ui.products.ProductNavigationTarget.ViewProductCatalogVisibility import com.woocommerce.android.ui.products.ProductNavigationTarget.ViewProductCategories import com.woocommerce.android.ui.products.ProductNavigationTarget.ViewProductDescriptionEditor @@ -171,37 +172,43 @@ class ProductNavigator @Inject constructor() { is ViewProductCategories -> { val action = ProductDetailFragmentDirections .actionGlobalProductCategoriesFragment(target.remoteId) - fragment.findNavController().navigate(action) + fragment.findNavController().navigateSafely(action) } is AddProductCategory -> { val action = ProductCategoriesFragmentDirections .actionProductCategoriesFragmentToAddProductCategoryFragment() - fragment.findNavController().navigate(action) + fragment.findNavController().navigateSafely(action) } is ViewProductTags -> { val action = ProductDetailFragmentDirections .actionGlobalProductTagsFragment(target.remoteId) - fragment.findNavController().navigate(action) + fragment.findNavController().navigateSafely(action) } is ViewProductDetailBottomSheet -> { val action = ProductDetailFragmentDirections .actionGlobalProductDetailBottomSheetFragment(target.remoteId) - fragment.findNavController().navigate(action) + fragment.findNavController().navigateSafely(action) } is ViewProductTypes -> { val action = ProductDetailFragmentDirections .actionProductDetailFragmentToProductTypesBottomSheetFragment(target.remoteId) - fragment.findNavController().navigate(action) + fragment.findNavController().navigateSafely(action) } is ViewProductReviews -> { val action = ProductDetailFragmentDirections .actionProductDetailFragmentToProductReviewsFragment(target.remoteId) - fragment.findNavController().navigate(action) + fragment.findNavController().navigateSafely(action) + } + + is ViewGroupedProducts -> { + val action = ProductDetailFragmentDirections + .actionGlobalGroupedProductListFragment(target.remoteId) + fragment.findNavController().navigateSafely(action) } is ExitProduct -> fragment.findNavController().navigateUp() diff --git a/WooCommerce/src/main/res/navigation/nav_graph_products.xml b/WooCommerce/src/main/res/navigation/nav_graph_products.xml index 9c83553340b..98a2ede0dbc 100644 --- a/WooCommerce/src/main/res/navigation/nav_graph_products.xml +++ b/WooCommerce/src/main/res/navigation/nav_graph_products.xml @@ -212,6 +212,15 @@ android:defaultValue="0L" app:argType="long" /> + + + @@ -266,6 +275,11 @@ app:destination="@id/productTagsFragment" app:enterAnim="@anim/activity_scale_in" app:popExitAnim="@anim/activity_scale_out" /> + Date: Tue, 11 Aug 2020 10:05:12 +0530 Subject: [PATCH 03/17] Added modules and viewmodel for grouped products screen --- .../ui/products/GroupedProductListFragment.kt | 8 ++++- .../ui/products/GroupedProductListModule.kt | 31 +++++++++++++++++++ .../products/GroupedProductListRepository.kt | 12 +++++++ .../products/GroupedProductListViewModel.kt | 21 +++++++++++++ .../android/ui/products/ProductsModule.kt | 11 ++++++- 5 files changed, 81 insertions(+), 2 deletions(-) create mode 100644 WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListModule.kt create mode 100644 WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListRepository.kt create mode 100644 WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListViewModel.kt diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListFragment.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListFragment.kt index 9cf861461e4..26d5e5e9c15 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListFragment.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListFragment.kt @@ -1,5 +1,11 @@ package com.woocommerce.android.ui.products +import androidx.fragment.app.viewModels import com.woocommerce.android.ui.base.BaseFragment +import com.woocommerce.android.viewmodel.ViewModelFactory +import javax.inject.Inject -class GroupedProductListFragment : BaseFragment() +class GroupedProductListFragment : BaseFragment() { + @Inject lateinit var viewModelFactory: ViewModelFactory + val viewModel: GroupedProductListViewModel by viewModels { viewModelFactory } +} diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListModule.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListModule.kt new file mode 100644 index 00000000000..67c755c9685 --- /dev/null +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListModule.kt @@ -0,0 +1,31 @@ +package com.woocommerce.android.ui.products + +import android.os.Bundle +import androidx.lifecycle.ViewModel +import androidx.savedstate.SavedStateRegistryOwner +import com.woocommerce.android.di.ViewModelAssistedFactory +import com.woocommerce.android.viewmodel.ViewModelKey +import dagger.Binds +import dagger.Module +import dagger.Provides +import dagger.multibindings.IntoMap + +@Module +abstract class GroupedProductListModule { + @Module + companion object { + @JvmStatic + @Provides + fun provideDefaultArgs(fragment: GroupedProductListFragment): Bundle? { + return fragment.arguments + } + } + + @Binds + @IntoMap + @ViewModelKey(GroupedProductListViewModel::class) + abstract fun bindFactory(factory: GroupedProductListViewModel.Factory): ViewModelAssistedFactory + + @Binds + abstract fun bindSavedStateRegistryOwner(fragment: GroupedProductListFragment): SavedStateRegistryOwner +} diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListRepository.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListRepository.kt new file mode 100644 index 00000000000..63e700878ac --- /dev/null +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListRepository.kt @@ -0,0 +1,12 @@ +package com.woocommerce.android.ui.products + +import com.woocommerce.android.tools.SelectedSite +import org.wordpress.android.fluxc.Dispatcher +import org.wordpress.android.fluxc.store.WCProductStore +import javax.inject.Inject + +class GroupedProductListRepository @Inject constructor( + private val dispatcher: Dispatcher, + private val selectedSite: SelectedSite, + private val productStore: WCProductStore +) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListViewModel.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListViewModel.kt new file mode 100644 index 00000000000..f3fbb38301d --- /dev/null +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/GroupedProductListViewModel.kt @@ -0,0 +1,21 @@ +package com.woocommerce.android.ui.products + +import com.squareup.inject.assisted.Assisted +import com.squareup.inject.assisted.AssistedInject +import com.woocommerce.android.annotations.OpenClassOnDebug +import com.woocommerce.android.di.ViewModelAssistedFactory +import com.woocommerce.android.tools.NetworkStatus +import com.woocommerce.android.util.CoroutineDispatchers +import com.woocommerce.android.viewmodel.SavedStateWithArgs +import com.woocommerce.android.viewmodel.ScopedViewModel + +@OpenClassOnDebug +class GroupedProductListViewModel @AssistedInject constructor( + @Assisted savedState: SavedStateWithArgs, + dispatchers: CoroutineDispatchers, + private val networkStatus: NetworkStatus, + private val groupedProductListRepository: GroupedProductListRepository +) : ScopedViewModel(savedState, dispatchers) { + @AssistedInject.Factory + interface Factory : ViewModelAssistedFactory +} diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductsModule.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductsModule.kt index 5b14b27f5f9..3618fc07e4f 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductsModule.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductsModule.kt @@ -2,6 +2,7 @@ package com.woocommerce.android.ui.products import com.woocommerce.android.di.FragmentScope import com.woocommerce.android.ui.products.ProductsModule.AddProductCategoryFragmentModule +import com.woocommerce.android.ui.products.ProductsModule.GroupedProductListFragmentModule import com.woocommerce.android.ui.products.ProductsModule.ParentCategoryListFragmentModule import com.woocommerce.android.ui.products.ProductsModule.ProductCatalogVisibilityFragmentModule import com.woocommerce.android.ui.products.ProductsModule.ProductCategoriesFragmentModule @@ -88,7 +89,8 @@ import dagger.android.ContributesAndroidInjector ProductTagsFragmentModule::class, ProductDetailBottomSheetFragmentModule::class, ProductTypesBottomSheetFragmentModule::class, - ProductReviewsFragmentModule::class + ProductReviewsFragmentModule::class, + GroupedProductListFragmentModule::class ]) object ProductsModule { @Module @@ -286,4 +288,11 @@ object ProductsModule { @ContributesAndroidInjector(modules = [ProductReviewsModule::class]) abstract fun productReviewsFragment(): ProductReviewsFragment } + + @Module + internal abstract class GroupedProductListFragmentModule { + @FragmentScope + @ContributesAndroidInjector(modules = [GroupedProductListModule::class]) + abstract fun groupedProductListFragment(): GroupedProductListFragment + } } From 17e6172a3caf504e0c3b5270b7bbd72f817dabef Mon Sep 17 00:00:00 2001 From: anitaa Date: Wed, 12 Aug 2020 22:30:40 +0530 Subject: [PATCH 04/17] Added logic to pass the list of productIds as a string --- .../main/kotlin/com/woocommerce/android/model/Product.kt | 4 ++-- .../android/ui/products/ProductDetailCardBuilder.kt | 2 +- .../android/ui/products/ProductNavigationTarget.kt | 2 +- .../com/woocommerce/android/ui/products/ProductNavigator.kt | 2 +- WooCommerce/src/main/res/navigation/nav_graph_products.xml | 6 +++--- 5 files changed, 8 insertions(+), 8 deletions(-) diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/model/Product.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/model/Product.kt index b70d4c9ab09..8c10a5d1fd2 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/model/Product.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/model/Product.kt @@ -73,7 +73,7 @@ data class Product( val menuOrder: Int, val categories: List, val tags: List, - val groupedProductIds: List, + val groupedProductIds: List, override val length: Float, override val width: Float, override val height: Float, @@ -538,7 +538,7 @@ fun WCProductModel.toAppModel(): Product { it.slug ) }, - groupedProductIds = this.getGroupedProductIds() + groupedProductIds = this.getGroupedProductIds().map { it.toLong() } ) } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt index 1d2157c25ff..e699925c8bb 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductDetailCardBuilder.kt @@ -481,7 +481,7 @@ class ProductDetailCardBuilder( ) { // TODO: add click event viewModel.onEditProductCardClicked( - ViewGroupedProducts(this.remoteId) + ViewGroupedProducts(this.groupedProductIds.joinToString(",")) ) } } else { diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigationTarget.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigationTarget.kt index d677c390517..67f3632fe51 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigationTarget.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigationTarget.kt @@ -49,5 +49,5 @@ sealed class ProductNavigationTarget : Event() { data class ViewProductDetailBottomSheet(val remoteId: Long) : ProductNavigationTarget() data class ViewProductTypes(val remoteId: Long) : ProductNavigationTarget() data class ViewProductReviews(val remoteId: Long) : ProductNavigationTarget() - data class ViewGroupedProducts(val remoteId: Long) : ProductNavigationTarget() + data class ViewGroupedProducts(val groupedProductIds: String) : ProductNavigationTarget() } diff --git a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigator.kt b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigator.kt index 7f394bb1ae8..41831329cab 100644 --- a/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigator.kt +++ b/WooCommerce/src/main/kotlin/com/woocommerce/android/ui/products/ProductNavigator.kt @@ -207,7 +207,7 @@ class ProductNavigator @Inject constructor() { is ViewGroupedProducts -> { val action = ProductDetailFragmentDirections - .actionGlobalGroupedProductListFragment(target.remoteId) + .actionGlobalGroupedProductListFragment(target.groupedProductIds) fragment.findNavController().navigateSafely(action) } diff --git a/WooCommerce/src/main/res/navigation/nav_graph_products.xml b/WooCommerce/src/main/res/navigation/nav_graph_products.xml index 98a2ede0dbc..64ec5076581 100644 --- a/WooCommerce/src/main/res/navigation/nav_graph_products.xml +++ b/WooCommerce/src/main/res/navigation/nav_graph_products.xml @@ -217,9 +217,9 @@ android:name="com.woocommerce.android.ui.products.GroupedProductListFragment" tools:layout="@layout/fragment_product_list"> + android:name="groupedProductIds" + android:defaultValue='""' + app:argType="string" /> From d499ce35c7727d8caf806ad2bfb779743d81f23c Mon Sep 17 00:00:00 2001 From: anitaa Date: Wed, 12 Aug 2020 22:48:14 +0530 Subject: [PATCH 05/17] Added UI for displaying grouped products --- .../drawable/ic_gridicons_cross_grey_24dp.xml | 10 +++++ .../layout/fragment_grouped_product_list.xml | 42 +++++++++++++++++++ .../src/main/res/layout/product_list_item.xml | 14 ++++++- WooCommerce/src/main/res/values/strings.xml | 1 + .../src/main/res/values/styles_base.xml | 5 +++ 5 files changed, 71 insertions(+), 1 deletion(-) create mode 100644 WooCommerce/src/main/res/drawable/ic_gridicons_cross_grey_24dp.xml create mode 100644 WooCommerce/src/main/res/layout/fragment_grouped_product_list.xml diff --git a/WooCommerce/src/main/res/drawable/ic_gridicons_cross_grey_24dp.xml b/WooCommerce/src/main/res/drawable/ic_gridicons_cross_grey_24dp.xml new file mode 100644 index 00000000000..a63af5eac9f --- /dev/null +++ b/WooCommerce/src/main/res/drawable/ic_gridicons_cross_grey_24dp.xml @@ -0,0 +1,10 @@ + + + diff --git a/WooCommerce/src/main/res/layout/fragment_grouped_product_list.xml b/WooCommerce/src/main/res/layout/fragment_grouped_product_list.xml new file mode 100644 index 00000000000..43b0905cc98 --- /dev/null +++ b/WooCommerce/src/main/res/layout/fragment_grouped_product_list.xml @@ -0,0 +1,42 @@ + + + + + + + + + + diff --git a/WooCommerce/src/main/res/layout/product_list_item.xml b/WooCommerce/src/main/res/layout/product_list_item.xml index 7aa3a577893..356a2bdb5cd 100644 --- a/WooCommerce/src/main/res/layout/product_list_item.xml +++ b/WooCommerce/src/main/res/layout/product_list_item.xml @@ -44,7 +44,7 @@ android:orientation="vertical" app:layout_constrainedWidth="true" app:layout_constraintBottom_toTopOf="@+id/divider" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toStartOf="@+id/product_btnDelete" app:layout_constraintStart_toEndOf="@+id/productImageFrame" app:layout_constraintTop_toTopOf="parent" app:layout_constraintVertical_bias="0.50"> @@ -70,6 +70,18 @@ tools:visibility="visible" /> + + Change product type Grouped products %d products + Delete the grouped product diff --git a/WooCommerce/src/main/res/values/styles_base.xml b/WooCommerce/src/main/res/values/styles_base.xml index 4ab5a602ff7..793593ccea9 100644 --- a/WooCommerce/src/main/res/values/styles_base.xml +++ b/WooCommerce/src/main/res/values/styles_base.xml @@ -424,6 +424,11 @@ theme across the entire app. Overridden versions should be added to the styles.x @drawable/ic_menu_more_vert_compat + +