From 879da90ec28394589dfbfd53424b2c55148b1880 Mon Sep 17 00:00:00 2001 From: RomainGF Date: Wed, 15 Nov 2023 15:04:36 +0100 Subject: [PATCH 1/4] Add drawable end on SimpleEntryItemView --- .../grapes/component/SimpleEntryItemView.kt | 8 ++++++ .../layout/component_simple_entry_item.xml | 27 ++++++++++++++++--- library/src/main/res/values/dimens_list.xml | 3 ++- 3 files changed, 34 insertions(+), 4 deletions(-) diff --git a/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt b/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt index b869d4d2..35542e8f 100644 --- a/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt +++ b/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt @@ -49,6 +49,7 @@ class SimpleEntryItemView : ConstraintLayout { val isGrayedOut: Boolean = false, val isSelected: Boolean = false, @DrawableRes val titleStartDrawable: Int = ResourcesCompat.ID_NULL, + @DrawableRes val drawableEnd: Int = ResourcesCompat.ID_NULL, val titleEndOptional: CharSequence? = null, val badgeNumber: Int? = null, ) : Serializable @@ -146,6 +147,13 @@ class SimpleEntryItemView : ConstraintLayout { false -> binding.simpleEntryItemTitleStart.removeDrawables() } + if (configuration.drawableEnd != ResourcesCompat.ID_NULL) { + binding.simpleEntryItemDrawableEnd.visible() + binding.simpleEntryItemDrawableEnd.setImageResource(configuration.drawableEnd) + } else { + binding.simpleEntryItemDrawableEnd.gone() + } + configuration.titleEndOptional ?.let { binding.simpleEntryItemTitleEndOptional.text = String.format(context.getString(R.string.simpleEntryItemTitleEndOptionalFormat), it) diff --git a/library/src/main/res/layout/component_simple_entry_item.xml b/library/src/main/res/layout/component_simple_entry_item.xml index 85449f66..c03cd019 100644 --- a/library/src/main/res/layout/component_simple_entry_item.xml +++ b/library/src/main/res/layout/component_simple_entry_item.xml @@ -116,7 +116,15 @@ android:layout_height="wrap_content" app:barrierAllowsGoneWidgets="true" app:barrierDirection="start" - app:constraint_referenced_ids="simpleEntryItemBadge,simpleEntryItemMinEndGuideline" /> + app:constraint_referenced_ids="simpleEntryItemBadge,simpleEntryItemDrawableEndBarrier" /> + + @@ -265,10 +273,23 @@ android:layout_height="wrap_content" android:layout_marginEnd="@dimen/listEntryItemBadgeMarginEnd" app:layout_constraintBottom_toBottomOf="@id/simpleEntryItemMinHeightGuideline" - app:layout_constraintEnd_toEndOf="parent" + app:layout_constraintEnd_toEndOf="@id/simpleEntryItemDrawableEndBarrier" app:layout_constraintStart_toEndOf="@id/simpleEntryItemBadgeBarrier" app:layout_constraintTop_toTopOf="parent" tools:text="42" tools:visibility="visible" /> + + - \ No newline at end of file + diff --git a/library/src/main/res/values/dimens_list.xml b/library/src/main/res/values/dimens_list.xml index 8ff2befd..20739829 100644 --- a/library/src/main/res/values/dimens_list.xml +++ b/library/src/main/res/values/dimens_list.xml @@ -25,10 +25,11 @@ 1dp @dimen/smallMargin @dimen/normalMargin + 40dp 16dp 20dp - \ No newline at end of file + From f3d7b6abcb52b504ef2aca748791a4f98017bf2a Mon Sep 17 00:00:00 2001 From: RomainGF Date: Wed, 15 Nov 2023 15:33:01 +0100 Subject: [PATCH 2/4] Add SimpleEntryItemView image alt color configuration --- .../com/spendesk/grapes/component/SimpleEntryItemView.kt | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt b/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt index 35542e8f..a8495f33 100644 --- a/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt +++ b/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt @@ -3,6 +3,7 @@ package com.spendesk.grapes.component import android.content.Context import android.util.AttributeSet import android.view.LayoutInflater +import androidx.annotation.ColorRes import androidx.annotation.DrawableRes import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.content.ContextCompat @@ -41,6 +42,8 @@ class SimpleEntryItemView : ConstraintLayout { val shouldCircleCropSecondaryImage: Boolean = false, @DrawableRes val placeholderSecondaryImage: Int = ResourcesCompat.ID_NULL, val imageAltText: CharSequence? = null, + @ColorRes val imageAltBackgroundColor: Int = R.color.mainInfoNormal, + @ColorRes val imageAltTextColor: Int = R.color.mainWhite, val titleStart: CharSequence, val descriptionStart: CharSequence? = null, val titleEnd: CharSequence? = null, @@ -97,6 +100,11 @@ class SimpleEntryItemView : ConstraintLayout { } false -> { binding.simpleEntryItemPrimaryImage.gone() + binding.simpleEntryItemImageAltText.backgroundTintList = + ContextCompat.getColorStateList(context, configuration.imageAltBackgroundColor) + binding.simpleEntryItemImageAltText.setTextColor( + ContextCompat.getColor(context, configuration.imageAltTextColor) + ) binding.simpleEntryItemImageAltText.visibleWithTextOrGone(configuration.imageAltText) } } From 95ba33b281ff144508a58d7873fab62e38224565 Mon Sep 17 00:00:00 2001 From: RomainGF Date: Wed, 15 Nov 2023 15:33:15 +0100 Subject: [PATCH 3/4] Update SimpleEntryItemView sample --- .../samples/home/fragments/ListsFragment.kt | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/sample/src/main/java/com/spendesk/grapes/samples/home/fragments/ListsFragment.kt b/sample/src/main/java/com/spendesk/grapes/samples/home/fragments/ListsFragment.kt index efcadba4..d9df3cac 100644 --- a/sample/src/main/java/com/spendesk/grapes/samples/home/fragments/ListsFragment.kt +++ b/sample/src/main/java/com/spendesk/grapes/samples/home/fragments/ListsFragment.kt @@ -167,6 +167,22 @@ class ListsFragment : Fragment(R.layout.fragment_home_lists) { messageConfiguration = null ) + val item16Configuration = SimpleEntryItemView.Configuration( + titleStart = "Some title", + descriptionStart = "Some long description to test drawable end padding", + imageAltText = "2", + drawableEnd = R.drawable.ic_arrow_right, + ) + + val item17Configuration = SimpleEntryItemView.Configuration( + titleStart = "Some title", + descriptionStart = "Some long description to test drawable end padding", + imageAltText = "2", + drawableEnd = R.drawable.ic_arrow_right, + imageAltBackgroundColor = R.color.mainAlertNormal, + imageAltTextColor = R.color.black, + ) + // Sections val section1Configuration = SimpleSectionItemView.Configuration( iconStart = R.drawable.ic_crop, @@ -200,8 +216,10 @@ class ListsFragment : Fragment(R.layout.fragment_home_lists) { SimpleListModel.Item(id = "12", configuration = item12Configuration), SimpleListModel.Item(id = "13", configuration = item13Configuration), SimpleListModel.Item(id = "14", configuration = item14Configuration), - SimpleListModel.Item(id = "15", configuration = item15Configuration) + SimpleListModel.Item(id = "15", configuration = item15Configuration), + SimpleListModel.Item(id = "16", configuration = item16Configuration), + SimpleListModel.Item(id = "17", configuration = item17Configuration), ) ) } -} \ No newline at end of file +} From ed06a47a11c91d4625ca8f127f6954becf5aa4d0 Mon Sep 17 00:00:00 2001 From: RomainGF Date: Wed, 15 Nov 2023 15:47:49 +0100 Subject: [PATCH 4/4] Add drawable end tint parameter --- .../java/com/spendesk/grapes/component/SimpleEntryItemView.kt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt b/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt index a8495f33..1d20620c 100644 --- a/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt +++ b/library/src/main/java/com/spendesk/grapes/component/SimpleEntryItemView.kt @@ -53,6 +53,7 @@ class SimpleEntryItemView : ConstraintLayout { val isSelected: Boolean = false, @DrawableRes val titleStartDrawable: Int = ResourcesCompat.ID_NULL, @DrawableRes val drawableEnd: Int = ResourcesCompat.ID_NULL, + @ColorRes val drawableEndTint: Int = R.color.mainNeutralDark, val titleEndOptional: CharSequence? = null, val badgeNumber: Int? = null, ) : Serializable @@ -158,6 +159,8 @@ class SimpleEntryItemView : ConstraintLayout { if (configuration.drawableEnd != ResourcesCompat.ID_NULL) { binding.simpleEntryItemDrawableEnd.visible() binding.simpleEntryItemDrawableEnd.setImageResource(configuration.drawableEnd) + binding.simpleEntryItemDrawableEnd.imageTintList = + ContextCompat.getColorStateList(context, configuration.drawableEndTint) } else { binding.simpleEntryItemDrawableEnd.gone() }