diff --git a/CHANGELOG.md b/CHANGELOG.md index 4299badf32..783e4ec06c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,8 @@ All notable changes to this project will be documented in this file. ## UNRELEASED ### Added ### Changed +* ui: Show bin icon instead of minus if the quantity of the line item is 1 + ### Removed ### Fixed diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index a8280e65c7..d8bbd55ec5 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,7 +2,7 @@ compileSdk = "33" targetSdk = "32" minSdk = "21" -gradlePlugin = "7.4.1" +gradlePlugin = "7.4.2" desugarVersion = "1.1.5" okhttpVersion = "4.10.0" # @pin always, manually updated to ensure overall dependency support diff --git a/ui/src/main/java/io/snabble/sdk/ui/cart/ShoppingCartItemViewHolder.kt b/ui/src/main/java/io/snabble/sdk/ui/cart/ShoppingCartItemViewHolder.kt index 9ce3b285c3..77c3084941 100644 --- a/ui/src/main/java/io/snabble/sdk/ui/cart/ShoppingCartItemViewHolder.kt +++ b/ui/src/main/java/io/snabble/sdk/ui/cart/ShoppingCartItemViewHolder.kt @@ -11,9 +11,11 @@ import android.view.inputmethod.InputMethodManager import android.widget.EditText import android.widget.ImageView import android.widget.TextView +import androidx.appcompat.content.res.AppCompatResources import androidx.core.view.isVisible import androidx.core.widget.addTextChangedListener import androidx.recyclerview.widget.RecyclerView +import com.google.android.material.button.MaterialButton import com.squareup.picasso.Picasso import io.snabble.accessibility.accessibility import io.snabble.accessibility.orderViewsForAccessibility @@ -31,13 +33,14 @@ class ShoppingCartItemViewHolder internal constructor( itemView: View, private val undoHelper: UndoHelper ) : RecyclerView.ViewHolder(itemView) { + var image: ImageView = itemView.findViewById(R.id.helper_image) var name: TextView = itemView.findViewById(R.id.name) var subtitle: TextView? = itemView.findViewById(R.id.subtitle) var quantityTextView: TextView = itemView.findViewById(R.id.quantity) var priceTextView: TextView = itemView.findViewById(R.id.price) var plus: View = itemView.findViewById(R.id.plus) - var minus: View = itemView.findViewById(R.id.minus) + var minus: MaterialButton = itemView.findViewById(R.id.minus) var quantityEdit: EditText = itemView.findViewById(R.id.quantity_edit) var controlsUserWeighed: View = itemView.findViewById(R.id.controls_user_weighed) var controlsDefault: View = itemView.findViewById(R.id.controls_default) @@ -110,8 +113,12 @@ class ShoppingCartItemViewHolder internal constructor( controlsUserWeighed.isVisible = row.editable && row.item.product?.type == Product.Type.UserWeighed plus.setOnClickListener { row.item.quantity++ + + updateMinusButtonIcon(row.item.quantity) + Telemetry.event(Telemetry.Event.CartAmountChanged, row.item.product) } + updateMinusButtonIcon(row.item.quantity) minus.setOnClickListener { val p = bindingAdapterPosition val newQuantity = row.item.quantity - 1 @@ -121,6 +128,8 @@ class ShoppingCartItemViewHolder internal constructor( row.item.quantity = newQuantity Telemetry.event(Telemetry.Event.CartAmountChanged, row.item.product) } + + updateMinusButtonIcon(newQuantity) } quantityEditApply.setOneShotClickListener { row.item.quantity = quantityEditValue @@ -150,6 +159,11 @@ class ShoppingCartItemViewHolder internal constructor( quantityEdit.filters = arrayOf(InputFilterMinMax(0, ShoppingCart.MAX_QUANTITY)) } + private fun updateMinusButtonIcon(quantity: Int) { + val iconRes = if (quantity == 1) R.drawable.snabble_ic_delete else R.drawable.snabble_ic_minus + minus.icon = AppCompatResources.getDrawable(minus.context, iconRes) + } + fun hideInput() { val imm = quantityEdit.context .getSystemService(Context.INPUT_METHOD_SERVICE) as InputMethodManager @@ -177,4 +191,4 @@ class ShoppingCartItemViewHolder internal constructor( } catch (e: NumberFormatException) { 0 } -} \ No newline at end of file +} diff --git a/ui/src/main/res/layout/snabble_item_shoppingcart_product.xml b/ui/src/main/res/layout/snabble_item_shoppingcart_product.xml index c7b65ffc82..ee46a552d5 100644 --- a/ui/src/main/res/layout/snabble_item_shoppingcart_product.xml +++ b/ui/src/main/res/layout/snabble_item_shoppingcart_product.xml @@ -1,6 +1,5 @@ - + tools:visibility="visible" /> + + + - - + android:layout_height="36dp" + android:contentDescription="@string/Snabble.Shoppingcart.Accessibility.decreaseQuantity" + app:icon="@drawable/snabble_ic_minus" + app:iconGravity="textStart" + app:iconTint="?attr/colorOnSurface" + app:strokeColor="@drawable/snabble_stroke" /> - - - - + android:layout_height="36dp" + android:contentDescription="@string/Snabble.Shoppingcart.Accessibility.increaseQuantity" + app:icon="@drawable/snabble_ic_add" + app:iconGravity="textStart" + app:iconTint="?attr/colorOnSurface" + app:strokeColor="@drawable/snabble_stroke" /> - - @@ -190,9 +176,9 @@ + android:layout_height="36dp" + android:layout_gravity="center_vertical"> + + + - \ No newline at end of file + +