diff --git a/library/src/main/java/com/telefonica/mistica/link/TextLink.kt b/library/src/main/java/com/telefonica/mistica/link/TextLink.kt index 7efbf6523..2546cc1df 100644 --- a/library/src/main/java/com/telefonica/mistica/link/TextLink.kt +++ b/library/src/main/java/com/telefonica/mistica/link/TextLink.kt @@ -6,8 +6,6 @@ import android.text.method.LinkMovementMethod import android.util.AttributeSet import androidx.annotation.ColorInt import androidx.appcompat.widget.AppCompatTextView -import androidx.databinding.BindingMethod -import androidx.databinding.BindingMethods import com.telefonica.mistica.R import com.telefonica.mistica.link.MultiLink.CustomMultiLink import com.telefonica.mistica.link.MultiLink.DefaultMultiLink @@ -15,13 +13,6 @@ import com.telefonica.mistica.link.SingleLink.CustomSingleLink import com.telefonica.mistica.link.SingleLink.DefaultSingleLink import com.telefonica.mistica.util.getThemeColor -@BindingMethods( - BindingMethod( - type = TextLink::class, - attribute = "linkColor", - method = "setLinkColor" - ), -) class TextLink @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, @@ -41,7 +32,7 @@ class TextLink @JvmOverloads constructor( movementMethod = LinkMovementMethod.getInstance() highlightColor = Color.TRANSPARENT - if (attrs != null) { + if (attrs != null) { val styledAttrs = context.theme.obtainStyledAttributes(attrs, R.styleable.TextLinkView, defStyleAttr, 0) setLinkColor(styledAttrs.getColor(R.styleable.TextLinkView_linkColor, context.getThemeColor(R.attr.colorTextLink))) diff --git a/library/src/main/java/com/telefonica/mistica/list/ListRowView.kt b/library/src/main/java/com/telefonica/mistica/list/ListRowView.kt index 70f6ee229..ef72758a3 100644 --- a/library/src/main/java/com/telefonica/mistica/list/ListRowView.kt +++ b/library/src/main/java/com/telefonica/mistica/list/ListRowView.kt @@ -26,9 +26,6 @@ import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet import androidx.core.view.ViewCompat import androidx.core.view.isVisible -import androidx.databinding.BindingAdapter -import androidx.databinding.BindingMethod -import androidx.databinding.BindingMethods import com.telefonica.mistica.R import com.telefonica.mistica.badge.Badge import com.telefonica.mistica.list.ListRowView.ContentDescriptionKeys.DESCRIPTION @@ -43,89 +40,6 @@ import com.telefonica.mistica.util.getThemeColor import com.telefonica.mistica.util.loadUrl import com.telefonica.mistica.util.setAlpha -@BindingMethods( - BindingMethod( - type = ListRowView::class, - attribute = "listRowHeadlineLayout", - method = "setHeadlineLayout" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowHeadlineVisible", - method = "setHeadlineVisible" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowTitle", - method = "setTitle" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowTitleMaxLines", - method = "setTitleMaxLines" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowIsTitleHeading", - method = "setTitleHeading" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowSubtitle", - method = "setSubtitle" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowSubtitleMaxLines", - method = "setSubtitleMaxLines" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowDescription", - method = "setDescription" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowDescriptionMaxLines", - method = "setDescriptionMaxLines" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowAssetDrawable", - method = "setAssetDrawable" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowAssetType", - method = "setAssetType" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowIsBoxed", - method = "setBoxed" - ), - BindingMethod( - type = ListRowView::class, - attribute = "backgroundType", - method = "setBackgroundType" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowActionLayout", - method = "setActionLayout" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowAssetHeight", - method = "setAssetHeight" - ), - BindingMethod( - type = ListRowView::class, - attribute = "listRowAssetWidth", - method = "setAssetWidth" - ), -) - @Suppress("LargeClass") open class ListRowView @JvmOverloads constructor( context: Context, @@ -700,6 +614,30 @@ open class ListRowView @JvmOverloads constructor( } } + fun setListRowTitle(value: CharSequence?) { + setTitle(value) + } + + fun setListRowSubtitle(value: CharSequence?) { + setSubtitle(value) + } + + fun setListRowDescription(value: CharSequence?) { + setDescription(value) + } + + fun setListRowHeadlineVisible(value: Boolean) { + setHeadlineVisible(value) + } + + fun setListRowTitleMaxLines(value: Int) { + setTitleMaxLines(value) + } + + fun setListRowIsTitleHeading(value: Boolean) { + if (value) setTitleHeading() + } + private fun showNonNumericBadge() { Badge.removeBadge(badgeAnchor) badgeAnchorContainer.visibility = View.VISIBLE @@ -804,23 +742,5 @@ open class ListRowView @JvmOverloads constructor( const val TYPE_IMAGE_7_10 = 4 const val TYPE_IMAGE_16_9 = 5 const val TYPE_IMAGE_ROUNDED = 6 - - @BindingAdapter( - value = ["listRowBadgeCount"], - requireAll = false - ) - @JvmStatic - fun setNumericBadge(view: ListRowView, count: Int) { - view.setNumericBadge(count) - } - - @BindingAdapter( - value = ["listRowBadgeVisible"], - requireAll = false - ) - @JvmStatic - fun setBadge(view: ListRowView, show: Boolean) { - view.setBadge(show) - } } } diff --git a/library/src/main/java/com/telefonica/mistica/list/MisticaRecyclerView.kt b/library/src/main/java/com/telefonica/mistica/list/MisticaRecyclerView.kt index 24db0aaad..7b11f8e6f 100644 --- a/library/src/main/java/com/telefonica/mistica/list/MisticaRecyclerView.kt +++ b/library/src/main/java/com/telefonica/mistica/list/MisticaRecyclerView.kt @@ -3,20 +3,11 @@ package com.telefonica.mistica.list import android.content.Context import android.util.AttributeSet import androidx.annotation.IntDef -import androidx.databinding.BindingMethod -import androidx.databinding.BindingMethods import androidx.recyclerview.widget.RecyclerView import com.telefonica.mistica.R import com.telefonica.mistica.list.layout.configureWithBoxedLayout import com.telefonica.mistica.list.layout.configureWithFullWidthLayout -@BindingMethods( - BindingMethod( - type = MisticaRecyclerView::class, - attribute = "listLayoutType", - method = "setListLayoutType" - ) -) class MisticaRecyclerView : RecyclerView { constructor(context: Context) : super(context) { diff --git a/library/src/main/java/com/telefonica/mistica/list/README.md b/library/src/main/java/com/telefonica/mistica/list/README.md index dcbc1256d..fc4f4d30b 100644 --- a/library/src/main/java/com/telefonica/mistica/list/README.md +++ b/library/src/main/java/com/telefonica/mistica/list/README.md @@ -7,7 +7,7 @@

-Implemented as a custom view, `com.telefonica.mistica.ListRowView` can be used inside any layout like a regular view, including recyclable lists. It supports both **attribute configuration and databinding for all properties**. +Implemented as a custom view, `com.telefonica.mistica.ListRowView` can be used inside any layout like a regular view, including recyclable lists. It supports **attribute-based configuration for all properties**. ```xml @@ -62,7 +62,7 @@ Implemented as a custom view, `com.telefonica.mistica.ListRowView` can be used i * Full Width Layout --> `configureWithFullWidthLayout` * Boxed Layout --> `configureWithBoxedLayout` -Also `com.telefonica.mistica.MisticaRecyclerView` is just a `RecyclerView` that already supports previous layout styles by **both attribute configuration and databinding**: +Also `com.telefonica.mistica.MisticaRecyclerView` is just a RecyclerView that already supports previous layout styles by **attribute-based configuration**. ```xml diff --git a/library/src/main/java/com/telefonica/mistica/stepper/DeterminateStepperView.kt b/library/src/main/java/com/telefonica/mistica/stepper/DeterminateStepperView.kt index 4f661446f..87119eb6a 100644 --- a/library/src/main/java/com/telefonica/mistica/stepper/DeterminateStepperView.kt +++ b/library/src/main/java/com/telefonica/mistica/stepper/DeterminateStepperView.kt @@ -7,27 +7,13 @@ import android.view.View import android.widget.FrameLayout import androidx.constraintlayout.widget.ConstraintLayout import androidx.constraintlayout.widget.ConstraintSet -import androidx.constraintlayout.widget.ConstraintSet.END import androidx.constraintlayout.widget.ConstraintSet.BOTTOM +import androidx.constraintlayout.widget.ConstraintSet.END import androidx.constraintlayout.widget.ConstraintSet.START import androidx.constraintlayout.widget.ConstraintSet.TOP -import androidx.databinding.BindingMethod -import androidx.databinding.BindingMethods import com.telefonica.mistica.R import kotlin.math.roundToInt -@BindingMethods( - BindingMethod( - type = DeterminateStepperView::class, - attribute = "maxSteps", - method = "setMaxSteps" - ), - BindingMethod( - type = DeterminateStepperView::class, - attribute = "step", - method = "setStep" - ) -) class DeterminateStepperView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, diff --git a/library/src/main/java/com/telefonica/mistica/stepper/IndeterminateStepperView.kt b/library/src/main/java/com/telefonica/mistica/stepper/IndeterminateStepperView.kt index 814b57111..2ce85ee35 100644 --- a/library/src/main/java/com/telefonica/mistica/stepper/IndeterminateStepperView.kt +++ b/library/src/main/java/com/telefonica/mistica/stepper/IndeterminateStepperView.kt @@ -7,17 +7,8 @@ import android.view.LayoutInflater import android.view.animation.DecelerateInterpolator import android.widget.LinearLayout import android.widget.ProgressBar -import androidx.databinding.BindingMethod -import androidx.databinding.BindingMethods import com.telefonica.mistica.R -@BindingMethods( - BindingMethod( - type = IndeterminateStepperView::class, - attribute = "progress", - method = "setProgress" - ) -) class IndeterminateStepperView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, diff --git a/library/src/main/java/com/telefonica/mistica/title/TitleView.kt b/library/src/main/java/com/telefonica/mistica/title/TitleView.kt index 35774158c..4ce29c468 100644 --- a/library/src/main/java/com/telefonica/mistica/title/TitleView.kt +++ b/library/src/main/java/com/telefonica/mistica/title/TitleView.kt @@ -13,40 +13,11 @@ import androidx.annotation.VisibleForTesting import androidx.constraintlayout.widget.ConstraintLayout import androidx.core.view.ViewCompat import androidx.core.view.isVisible -import androidx.databinding.BindingMethod -import androidx.databinding.BindingMethods import com.telefonica.mistica.R import com.telefonica.mistica.util.getThemeColor import com.telefonica.mistica.util.setTextAndVisibility import com.telefonica.mistica.util.setTextPreset -@BindingMethods( - BindingMethod( - type = TitleView::class, - attribute = "title", - method = "setTitle" - ), - BindingMethod( - type = TitleView::class, - attribute = "titleStyle", - method = "setTitleStyle" - ), - BindingMethod( - type = TitleView::class, - attribute = "isTitleHeading", - method = "setTitleHeading" - ), - BindingMethod( - type = TitleView::class, - attribute = "link", - method = "setLink" - ), - BindingMethod( - type = TitleView::class, - attribute = "linkOnClick", - method = "setOnLinkClickedListener" - ) -) class TitleView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null,