Skip to content

Commit

Permalink
Merge pull request #300 from Spendesk/task/add-simple-item-view-drawa…
Browse files Browse the repository at this point in the history
…ble-end

Add SimpleItemView configuration parameters
  • Loading branch information
RomainGF authored Nov 15, 2023
2 parents f7e62a0 + ed06a47 commit eef8a40
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down Expand Up @@ -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,
Expand All @@ -49,6 +52,8 @@ 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,
@ColorRes val drawableEndTint: Int = R.color.mainNeutralDark,
val titleEndOptional: CharSequence? = null,
val badgeNumber: Int? = null,
) : Serializable
Expand Down Expand Up @@ -96,6 +101,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)
}
}
Expand Down Expand Up @@ -146,6 +156,15 @@ class SimpleEntryItemView : ConstraintLayout {
false -> binding.simpleEntryItemTitleStart.removeDrawables()
}

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()
}

configuration.titleEndOptional
?.let {
binding.simpleEntryItemTitleEndOptional.text = String.format(context.getString(R.string.simpleEntryItemTitleEndOptionalFormat), it)
Expand Down
27 changes: 24 additions & 3 deletions library/src/main/res/layout/component_simple_entry_item.xml
Original file line number Diff line number Diff line change
Expand Up @@ -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" />

<androidx.constraintlayout.widget.Barrier
android:id="@+id/simpleEntryItemDrawableEndBarrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:barrierAllowsGoneWidgets="true"
app:barrierDirection="start"
app:constraint_referenced_ids="simpleEntryItemDrawableEnd,simpleEntryItemMinEndGuideline" />

<!-- endregion Barriers -->

Expand Down Expand Up @@ -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" />

<ImageView
android:id="@+id/simpleEntryItemDrawableEnd"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toBottomOf="@id/simpleEntryItemMinHeightGuideline"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/simpleEntryItemDrawableEndBarrier"
app:srcCompat="@drawable/ic_arrow_right"
android:padding="@dimen/smallMargin"
android:layout_height="@dimen/listEntryItemDrawableEndSize"
android:layout_width="@dimen/listEntryItemDrawableEndSize"
android:visibility="gone"
/>
<!-- endregion Views -->
</merge>
</merge>
3 changes: 2 additions & 1 deletion library/src/main/res/values/dimens_list.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,11 @@
<dimen name="listEntryItemDescriptionEndMarginTop">1dp</dimen>
<dimen name="listEntryItemMessageMarginBottom">@dimen/smallMargin</dimen>
<dimen name="listEntryItemBadgeMarginEnd">@dimen/normalMargin</dimen>
<dimen name="listEntryItemDrawableEndSize">40dp</dimen>
<!-- endregion List Item -->

<!-- region Section Item -->
<dimen name="listSectionItemPadding">16dp</dimen>
<dimen name="listSectionItemStartImageSize">20dp</dimen>
<!-- endregion Section Item -->
</resources>
</resources>
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down Expand Up @@ -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),
)
)
}
}
}

0 comments on commit eef8a40

Please sign in to comment.