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
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down
2 changes: 1 addition & 1 deletion gradle/libs.versions.toml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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)
Expand Down Expand Up @@ -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
Expand All @@ -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
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -177,4 +191,4 @@ class ShoppingCartItemViewHolder internal constructor(
} catch (e: NumberFormatException) {
0
}
}
}
80 changes: 35 additions & 45 deletions ui/src/main/res/layout/snabble_item_shoppingcart_product.xml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
Expand All @@ -22,23 +21,24 @@
android:layout_width="44dp"
android:layout_height="44dp"
android:layout_marginEnd="8dp"
android:importantForAccessibility="no"
android:visibility="gone"
app:shapeAppearanceOverlay="@style/Snabble.ShapeAppearanceOverlay.RoundedCorners"
tools:background="#ccc"
tools:visibility="visible"
android:importantForAccessibility="no"/>
tools:visibility="visible" />

<androidx.appcompat.widget.AppCompatTextView
android:id="@+id/red_label"
android:layout_width="20sp"
android:layout_height="18sp"
android:background="@drawable/snabble_ic_round_textview"
android:layout_marginEnd="8dp"
android:background="@drawable/snabble_ic_round_textview"
android:gravity="center"
android:text="%"
android:textColor="#ffffff"
android:gravity="center"
app:backgroundTint="#ff0000"
tools:ignore="HardcodedText" />

</FrameLayout>

<LinearLayout
Expand All @@ -64,8 +64,8 @@
android:id="@+id/price_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="8dp"
android:layout_marginTop="4dp"
android:layout_marginEnd="8dp"
android:orientation="horizontal">

<TextView
Expand All @@ -74,7 +74,9 @@
android:layout_height="wrap_content"
android:textAppearance="?attr/textAppearanceBodySmall"
tools:text="26,98 €" />

</LinearLayout>

</LinearLayout>

<FrameLayout
Expand All @@ -90,25 +92,17 @@
android:layout_height="38dp"
android:orientation="horizontal">

<FrameLayout
<com.google.android.material.button.MaterialButton
android:id="@+id/minus"
style="@style/Snabble.Widget.MaterialComponents.Button.OutlinedButton.Icon"
android:layout_width="36dp"
android:layout_height="36dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/snabble_ic_minus"
app:tint="?attr/colorOnSurface"
android:importantForAccessibility="no"/>
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" />

<com.google.android.material.button.MaterialButton
android:id="@+id/minus"
style="@style/Snabble.Widget.MaterialComponents.Button.OutlinedButton.Icon"
android:layout_width="36dp"
android:layout_height="36dp"
android:contentDescription="@string/Snabble.Shoppingcart.Accessibility.decreaseQuantity"
app:strokeColor="@drawable/snabble_stroke" />
</FrameLayout>
<TextView
android:id="@+id/quantity"
android:layout_width="wrap_content"
Expand All @@ -120,25 +114,17 @@
android:textAppearance="?attr/textAppearanceBodyLarge"
tools:text="3" />

<FrameLayout
<com.google.android.material.button.MaterialButton
android:id="@+id/plus"
style="@style/Snabble.Widget.MaterialComponents.Button.OutlinedButton.Icon"
android:layout_width="36dp"
android:layout_height="36dp">
<ImageView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:src="@drawable/snabble_ic_add"
app:tint="?attr/colorOnSurface"
android:importantForAccessibility="no"/>
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" />

<com.google.android.material.button.MaterialButton
android:id="@+id/plus"
style="@style/Snabble.Widget.MaterialComponents.Button.OutlinedButton.Icon"
android:layout_width="36dp"
android:layout_height="36dp"
app:strokeColor="@drawable/snabble_stroke"
android:contentDescription="@string/Snabble.Shoppingcart.Accessibility.increaseQuantity"/>
</FrameLayout>
</LinearLayout>

<LinearLayout
Expand Down Expand Up @@ -169,10 +155,10 @@
android:focusable="true"
android:focusableInTouchMode="true"
android:gravity="right|center_vertical"
android:hint="@string/Snabble.Shoppingcart.Accessibility.quantity"
android:imeOptions="actionDone"
android:inputType="number"
android:paddingHorizontal="12dp"
android:hint="@string/Snabble.Shoppingcart.Accessibility.quantity"
android:textAppearance="?attr/textAppearanceBodyMedium"
tools:text="1" />

Expand All @@ -190,9 +176,9 @@

<FrameLayout
android:id="@+id/quantity_edit_apply_layout"
android:layout_gravity="center_vertical"
android:layout_width="36dp"
android:layout_height="36dp">
android:layout_height="36dp"
android:layout_gravity="center_vertical">

<com.google.android.material.button.MaterialButton
android:id="@+id/quantity_edit_apply"
Expand All @@ -210,7 +196,11 @@
android:focusable="false"
android:src="@drawable/snabble_ic_check_white"
app:tint="?attr/colorOnPrimary" />

</FrameLayout>

</LinearLayout>

</FrameLayout>
</RelativeLayout>

</RelativeLayout>