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
+
+