From f4763084fb97843d57298e1ec3e92ddc2a654c9b Mon Sep 17 00:00:00 2001
From: David Hontiveros Gordo
Date: Tue, 30 Dec 2025 15:32:33 +0100
Subject: [PATCH 1/7] ANDROID-16934/pr1-remove-databinding: Remove databinding
references from "button2/Button" component
---
library/src/main/java/com/telefonica/mistica/button/README.md | 2 +-
.../src/main/java/com/telefonica/mistica/button2/Button.kt | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/library/src/main/java/com/telefonica/mistica/button/README.md b/library/src/main/java/com/telefonica/mistica/button/README.md
index 049592090..4f9d8c9e9 100644
--- a/library/src/main/java/com/telefonica/mistica/button/README.md
+++ b/library/src/main/java/com/telefonica/mistica/button/README.md
@@ -2,7 +2,7 @@
Following classes should be used to place buttons in the app:
* `com.telefonica.mistica.Button` --> Simple button with primary style applied by default
-* `com.telefonica.mistica.ProgressButton` --> In case of the need of a loading state (a button with progress), this one can be used to show an spinner (with an optional loading text) with an animation. `app:isLoading` attribute can be used in order to set it as loading on xml layouts, also with databinding.
+* `com.telefonica.mistica.ProgressButton` --> In case of the need of a loading state (a button with progress), this one can be used to show a spinner (with an optional loading text) with an animation. `app:isLoading` attribute can be used to set it as loading in XML layouts.
Buttons are based on material components, so all material functionalities are applicable on them.
diff --git a/library/src/main/java/com/telefonica/mistica/button2/Button.kt b/library/src/main/java/com/telefonica/mistica/button2/Button.kt
index cc355bb91..94098c941 100644
--- a/library/src/main/java/com/telefonica/mistica/button2/Button.kt
+++ b/library/src/main/java/com/telefonica/mistica/button2/Button.kt
@@ -66,6 +66,10 @@ class Button @JvmOverloads constructor(
onClick = { listener?.onClick(this) }
}
+ fun setButtonOnClick(action: (() -> Unit)?) {
+ onClick = { action?.invoke() }
+ }
+
fun updateLoadingText(text: String) {
loadingText = text
}
From 0259ca94167c59b68c5d1ce6b9543f64504aa146 Mon Sep 17 00:00:00 2001
From: David Hontiveros Gordo
Date: Tue, 30 Dec 2025 15:35:56 +0100
Subject: [PATCH 2/7] ANDROID-16934/pr1-remove-databinding: Remove databinding
references from "CalloutView" components and update corresponding README file
---
.../telefonica/mistica/callout/CalloutView.kt | 76 +------------------
.../com/telefonica/mistica/callout/README.md | 4 +-
2 files changed, 4 insertions(+), 76 deletions(-)
diff --git a/library/src/main/java/com/telefonica/mistica/callout/CalloutView.kt b/library/src/main/java/com/telefonica/mistica/callout/CalloutView.kt
index 8c3394fb7..825105a4c 100644
--- a/library/src/main/java/com/telefonica/mistica/callout/CalloutView.kt
+++ b/library/src/main/java/com/telefonica/mistica/callout/CalloutView.kt
@@ -17,85 +17,11 @@ import androidx.annotation.DrawableRes
import androidx.annotation.IntDef
import androidx.appcompat.content.res.AppCompatResources
import androidx.core.view.ViewCompat
-import androidx.databinding.BindingMethod
-import androidx.databinding.BindingMethods
import com.google.android.material.imageview.ShapeableImageView
import com.telefonica.mistica.R
import com.telefonica.mistica.button.Button
import com.telefonica.mistica.util.getThemeColor
-@BindingMethods(
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutTitle",
- method = "setTitle",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutTitleAsHeading",
- method = "setTitleAsHeading",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutDescription",
- method = "setDescription",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutAsset",
- method = "setAsset",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutAssetType",
- method = "setAssetType",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutButtonsConfig",
- method = "setButtonsConfig",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutPrimaryButtonText",
- method = "setPrimaryButtonText",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutPrimaryButtonOnClick",
- method = "setPrimaryButtonOnClick",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutSecondaryButtonText",
- method = "setSecondaryButtonText",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutSecondaryButtonOnClick",
- method = "setSecondaryButtonOnClick",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutLinkButtonText",
- method = "setLinkButtonText",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutLinkButtonOnClick",
- method = "setLinkButtonOnClick",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutDismissable",
- method = "setDismissable",
- ),
- BindingMethod(
- type = CalloutView::class,
- attribute = "calloutOnDismiss",
- method = "setOnDismiss",
- ),
-)
class CalloutView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
@@ -246,12 +172,14 @@ class CalloutView @JvmOverloads constructor(
image.visibility = GONE
circularImage.visibility = GONE
}
+
CalloutViewImageConfig.SQUARE_IMAGE -> {
image.setImageResource(assetRes)
image.visibility = VISIBLE
icon.visibility = GONE
circularImage.visibility = GONE
}
+
CalloutViewImageConfig.CIRCULAR_IMAGE -> {
circularImage.setImageResource(assetRes)
circularImage.visibility = VISIBLE
diff --git a/library/src/main/java/com/telefonica/mistica/callout/README.md b/library/src/main/java/com/telefonica/mistica/callout/README.md
index 0317e6b7f..1b7b2897b 100644
--- a/library/src/main/java/com/telefonica/mistica/callout/README.md
+++ b/library/src/main/java/com/telefonica/mistica/callout/README.md
@@ -6,8 +6,8 @@
-Implemented as a custom view, `com.telefonica.mistica.callout.CalloutView` can be used inside any layout like a regular view. It supports both **attribute
-configuration and databinding for all properties**.
+Implemented as a custom view, `com.telefonica.mistica.callout.CalloutView` can be used inside any layout like a regular view. It supports **attribute-based
+configuration for all properties**.
```xml
From f99db4fcd33a49e94c82a4d055d9c8b2b4dffb07 Mon Sep 17 00:00:00 2001
From: David Hontiveros Gordo
Date: Tue, 30 Dec 2025 15:43:15 +0100
Subject: [PATCH 3/7] ANDROID-16934/pr1-remove-databinding: Remove databinding
references from "CardView" components and update corresponding REDME file
---
.../com/telefonica/mistica/card/CardView.kt | 54 -------------------
.../mistica/card/datacard/DataCardView.kt | 26 +++------
.../mistica/card/datacard/README.md | 2 +-
.../mistica/card/mediacard/MediaCardView.kt | 19 -------
4 files changed, 7 insertions(+), 94 deletions(-)
diff --git a/library/src/main/java/com/telefonica/mistica/card/CardView.kt b/library/src/main/java/com/telefonica/mistica/card/CardView.kt
index 9739c2b85..4ebc797b1 100644
--- a/library/src/main/java/com/telefonica/mistica/card/CardView.kt
+++ b/library/src/main/java/com/telefonica/mistica/card/CardView.kt
@@ -11,65 +11,11 @@ import androidx.annotation.StringRes
import androidx.appcompat.content.res.AppCompatResources
import androidx.cardview.widget.CardView
import androidx.core.content.res.ResourcesCompat
-import androidx.databinding.BindingMethod
-import androidx.databinding.BindingMethods
import com.telefonica.mistica.R
import com.telefonica.mistica.tag.TagStyle
import com.telefonica.mistica.tag.TagView
import com.telefonica.mistica.util.getDimension
-@BindingMethods(
- BindingMethod(
- type = CardView::class,
- attribute = "cardTag",
- method = "setTag"
- ),
- BindingMethod(
- type = CardView::class,
- attribute = "cardTagColor",
- method = "setTagColor"
- ),
- BindingMethod(
- type = CardView::class,
- attribute = "cardTitle",
- method = "setTitle"
- ),
- BindingMethod(
- type = CardView::class,
- attribute = "cardTitleMaxLines",
- method = "setTitleMaxLines"
- ),
- BindingMethod(
- type = CardView::class,
- attribute = "cardDescription",
- method = "setDescription"
- ),
- BindingMethod(
- type = CardView::class,
- attribute = "cardDescriptionMaxLines",
- method = "setDescriptionMaxLines"
- ),
- BindingMethod(
- type = CardView::class,
- attribute = "cardPrimaryButtonText",
- method = "setPrimaryButtonText"
- ),
- BindingMethod(
- type = CardView::class,
- attribute = "cardLinkButtonText",
- method = "setLinkButtonText"
- ),
- BindingMethod(
- type = CardView::class,
- attribute = "cardPrimaryButtonOnClick",
- method = "setPrimaryButtonOnClick"
- ),
- BindingMethod(
- type = CardView::class,
- attribute = "cardLinkButtonOnClick",
- method = "setLinkButtonOnClick"
- )
-)
abstract class CardView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
diff --git a/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt b/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt
index 473623884..eb39d8207 100644
--- a/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt
+++ b/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt
@@ -12,8 +12,6 @@ import androidx.annotation.DrawableRes
import androidx.annotation.IntDef
import androidx.annotation.StringRes
import androidx.appcompat.content.res.AppCompatResources
-import androidx.databinding.BindingMethod
-import androidx.databinding.BindingMethods
import com.telefonica.mistica.R
import com.telefonica.mistica.card.CardView
import com.telefonica.mistica.card.datacard.DataCardView.IconType.Companion.TYPE_CIRCULAR_ICON
@@ -22,23 +20,6 @@ import com.telefonica.mistica.card.datacard.DataCardView.IconType.Companion.TYPE
import com.telefonica.mistica.card.datacard.DataCardView.IconType.Companion.TYPE_SQUARE_IMAGE
import com.telefonica.mistica.util.convertDpToPx
-@BindingMethods(
- BindingMethod(
- type = DataCardView::class,
- attribute = "cardIcon",
- method = "setIcon"
- ),
- BindingMethod(
- type = DataCardView::class,
- attribute = "cardIconType",
- method = "setIconType"
- ),
- BindingMethod(
- type = DataCardView::class,
- attribute = "cardSubtitle",
- method = "setSubtitle"
- )
-)
class DataCardView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
@@ -108,13 +89,15 @@ class DataCardView @JvmOverloads constructor(
assetCircularImageView.visibility = View.VISIBLE
iconImageView.visibility = View.GONE
}
+
TYPE_ICON,
TYPE_CIRCULAR_ICON,
- -> {
+ -> {
iconImageView.setImageDrawable(icon)
iconImageView.visibility = View.VISIBLE
assetCircularImageView.visibility = View.GONE
}
+
TYPE_SQUARE_IMAGE -> {
iconImageView.setImageDrawable(icon)
iconImageView.visibility = View.VISIBLE
@@ -141,14 +124,17 @@ class DataCardView @JvmOverloads constructor(
TYPE_CIRCULAR_IMAGE -> {
imageLayout.setBackgroundResource(0)
}
+
TYPE_ICON -> {
imageLayout.setBackgroundResource(0)
iconImageView.setSize(24)
}
+
TYPE_CIRCULAR_ICON -> {
imageLayout.setBackgroundResource(R.drawable.bg_datacard_icon)
iconImageView.setSize(24)
}
+
TYPE_SQUARE_IMAGE -> {
imageLayout.setBackgroundResource(0)
iconImageView.setSize(40)
diff --git a/library/src/main/java/com/telefonica/mistica/card/datacard/README.md b/library/src/main/java/com/telefonica/mistica/card/datacard/README.md
index f4ab64fe4..88313a9d4 100644
--- a/library/src/main/java/com/telefonica/mistica/card/datacard/README.md
+++ b/library/src/main/java/com/telefonica/mistica/card/datacard/README.md
@@ -7,7 +7,7 @@
Data cards require a minimum content of a **title, description and a link button.**
-Implemented as a custom view, `com.telefonica.mistica.card.datacard.DataCardView` can be used inside any layout like a regular view. It supports both **attribute configuration and databinding for all properties**.
+Implemented as a custom view, `com.telefonica.mistica.card.datacard.DataCardView` can be used inside any layout like a regular view. It supports **attribute-based configuration for all properties**.
```xml
diff --git a/library/src/main/java/com/telefonica/mistica/card/mediacard/MediaCardView.kt b/library/src/main/java/com/telefonica/mistica/card/mediacard/MediaCardView.kt
index a84b06b3d..bcff11ac5 100644
--- a/library/src/main/java/com/telefonica/mistica/card/mediacard/MediaCardView.kt
+++ b/library/src/main/java/com/telefonica/mistica/card/mediacard/MediaCardView.kt
@@ -11,30 +11,11 @@ import android.widget.ImageView
import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.appcompat.content.res.AppCompatResources
-import androidx.databinding.BindingMethod
-import androidx.databinding.BindingMethods
import com.telefonica.mistica.R
import com.telefonica.mistica.card.CardView
import com.telefonica.mistica.util.hide
import com.telefonica.mistica.util.show
-@BindingMethods(
- BindingMethod(
- type = MediaCardView::class,
- attribute = "mediaCardImageDrawable",
- method = "setImageDrawable"
- ),
- BindingMethod(
- type = MediaCardView::class,
- attribute = "cardPretitle",
- method = "setPretitle"
- ),
- BindingMethod(
- type = MediaCardView::class,
- attribute = "cardImageContentDescription",
- method = "setCardImageContentDescription"
- )
-)
class MediaCardView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
From c074c4512e115fc6fed3067c54072b0e2e665333 Mon Sep 17 00:00:00 2001
From: David Hontiveros Gordo
Date: Tue, 30 Dec 2025 15:53:06 +0100
Subject: [PATCH 4/7] ANDROID-16934/pr1-remove-databinding: Remove databinding
references form "EmptyState" components and update corresponding README files
---
.../emptystate/card/EmptyStateCardView.kt | 73 ++---------------
.../mistica/emptystate/card/README.md | 3 +-
.../emptystate/screen/EmptyStateScreenView.kt | 78 +++----------------
.../mistica/emptystate/screen/README.md | 3 +-
4 files changed, 18 insertions(+), 139 deletions(-)
diff --git a/library/src/main/java/com/telefonica/mistica/emptystate/card/EmptyStateCardView.kt b/library/src/main/java/com/telefonica/mistica/emptystate/card/EmptyStateCardView.kt
index e8d32689a..661c6fb05 100644
--- a/library/src/main/java/com/telefonica/mistica/emptystate/card/EmptyStateCardView.kt
+++ b/library/src/main/java/com/telefonica/mistica/emptystate/card/EmptyStateCardView.kt
@@ -14,74 +14,10 @@ import android.widget.TextView
import androidx.annotation.DrawableRes
import androidx.annotation.IntDef
import androidx.appcompat.content.res.AppCompatResources
-import androidx.databinding.BindingMethod
-import androidx.databinding.BindingMethods
import com.telefonica.mistica.R
import com.telefonica.mistica.button.ProgressButton
import com.telefonica.mistica.util.convertDpToPx
-@BindingMethods(
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardImage",
- method = "setImage"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardImageContentDescription",
- method = "setImageContentDescription"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardTitle",
- method = "setTitle"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardSubtitle",
- method = "setSubtitle"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardButtonsConfig",
- method = "setButtonsConfig"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardPrimaryButtonText",
- method = "setPrimaryButtonText"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardPrimaryButtonOnClick",
- method = "setPrimaryButtonOnClick"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardSecondaryButtonText",
- method = "setSecondaryButtonText"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardSecondaryButtonOnClick",
- method = "setSecondaryButtonOnClick"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardLinkButtonText",
- method = "setLinkButtonText"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardLinkButtonOnClick",
- method = "setLinkButtonOnClick"
- ),
- BindingMethod(
- type = EmptyStateCardView::class,
- attribute = "emptyStateCardImageSize",
- method = "setImageSize"
- ),
-)
class EmptyStateCardView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
@@ -208,7 +144,8 @@ class EmptyStateCardView @JvmOverloads constructor(
BUTTONS_CONFIG_PRIMARY,
BUTTONS_CONFIG_PRIMARY_LINK,
BUTTONS_CONFIG_PRIMARY_SECONDARY,
- -> View.VISIBLE
+ -> View.VISIBLE
+
else -> View.GONE
}
@@ -216,7 +153,8 @@ class EmptyStateCardView @JvmOverloads constructor(
BUTTONS_CONFIG_PRIMARY_SECONDARY,
BUTTONS_CONFIG_SECONDARY,
BUTTONS_CONFIG_SECONDARY_LINK,
- -> View.VISIBLE
+ -> View.VISIBLE
+
else -> View.GONE
}
@@ -224,7 +162,8 @@ class EmptyStateCardView @JvmOverloads constructor(
BUTTONS_CONFIG_PRIMARY_LINK,
BUTTONS_CONFIG_SECONDARY_LINK,
LINK,
- -> View.VISIBLE
+ -> View.VISIBLE
+
else -> View.GONE
}
linkButton.layoutParams = (linkButton.layoutParams as LinearLayout.LayoutParams).apply {
diff --git a/library/src/main/java/com/telefonica/mistica/emptystate/card/README.md b/library/src/main/java/com/telefonica/mistica/emptystate/card/README.md
index a5a524e78..8167d4a9c 100644
--- a/library/src/main/java/com/telefonica/mistica/emptystate/card/README.md
+++ b/library/src/main/java/com/telefonica/mistica/emptystate/card/README.md
@@ -11,8 +11,7 @@ Implemented as a custom view,
`com.telefonica.mistica.emptystate.card.EmptyStateCardView` can be used
inside any layout like a regular view.
-It supports both **attribute
-configuration and databinding for all properties**.
+It supports **attribute-based configuration for all properties**.
```xml
diff --git a/library/src/main/java/com/telefonica/mistica/emptystate/screen/EmptyStateScreenView.kt b/library/src/main/java/com/telefonica/mistica/emptystate/screen/EmptyStateScreenView.kt
index 1e1eb48dc..aa86767c1 100644
--- a/library/src/main/java/com/telefonica/mistica/emptystate/screen/EmptyStateScreenView.kt
+++ b/library/src/main/java/com/telefonica/mistica/emptystate/screen/EmptyStateScreenView.kt
@@ -16,74 +16,10 @@ import androidx.annotation.DrawableRes
import androidx.annotation.IntDef
import androidx.appcompat.content.res.AppCompatResources
import androidx.constraintlayout.widget.ConstraintLayout
-import androidx.databinding.BindingMethod
-import androidx.databinding.BindingMethods
import com.telefonica.mistica.R
import com.telefonica.mistica.button.ProgressButton
import com.telefonica.mistica.util.convertDpToPx
-@BindingMethods(
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenImage",
- method = "setImage"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenImageContentDescription",
- method = "setImageContentDescription"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenTitle",
- method = "setTitle"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenSubtitle",
- method = "setSubtitle"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenButtonsConfig",
- method = "setButtonsConfig"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenPrimaryButtonText",
- method = "setPrimaryButtonText"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenPrimaryButtonOnClick",
- method = "setPrimaryButtonOnClick"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenSecondaryButtonText",
- method = "setSecondaryButtonText"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenSecondaryButtonOnClick",
- method = "setSecondaryButtonOnClick"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenLinkButtonText",
- method = "setLinkButtonText"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenLinkButtonOnClick",
- method = "setLinkButtonOnClick"
- ),
- BindingMethod(
- type = EmptyStateScreenView::class,
- attribute = "emptyStateScreenImageSize",
- method = "setImageSize"
- ),
-)
class EmptyStateScreenView @JvmOverloads constructor(
context: Context,
attrs: AttributeSet? = null,
@@ -198,19 +134,22 @@ class EmptyStateScreenView @JvmOverloads constructor(
primaryButton.visibility = when (buttonsConfig) {
BUTTONS_CONFIG_PRIMARY,
BUTTONS_CONFIG_PRIMARY_LINK,
- -> View.VISIBLE
+ -> View.VISIBLE
+
else -> View.GONE
}
secondaryButton.visibility = when (buttonsConfig) {
BUTTONS_CONFIG_SECONDARY,
BUTTONS_CONFIG_SECONDARY_LINK,
- -> View.VISIBLE
+ -> View.VISIBLE
+
else -> View.GONE
}
linkButton.visibility = when (buttonsConfig) {
BUTTONS_CONFIG_PRIMARY_LINK,
BUTTONS_CONFIG_SECONDARY_LINK,
- -> View.VISIBLE
+ -> View.VISIBLE
+
else -> View.GONE
}
}
@@ -245,7 +184,7 @@ class EmptyStateScreenView @JvmOverloads constructor(
fun setImageSize(@ImageSize imageSize: Int) {
val layoutParams = image.layoutParams as ConstraintLayout.LayoutParams
- with (layoutParams) {
+ with(layoutParams) {
when (imageSize) {
IMAGE_SIZE_ICON -> {
width = context.convertDpToPx(IMAGE_ICON_SIDE_PIXELS)
@@ -253,18 +192,21 @@ class EmptyStateScreenView @JvmOverloads constructor(
dimensionRatio = null
image.scaleType = ImageView.ScaleType.CENTER_INSIDE
}
+
IMAGE_SIZE_SMALL -> {
width = ViewGroup.LayoutParams.WRAP_CONTENT
height = context.convertDpToPx(IMAGE_SMALL_HEIGHT_PIXELS)
dimensionRatio = null
image.scaleType = ImageView.ScaleType.FIT_START
}
+
IMAGE_SIZE_FULL_WIDTH -> {
width = ViewGroup.LayoutParams.MATCH_PARENT
height = 0
dimensionRatio = "16:9"
image.scaleType = ImageView.ScaleType.CENTER_CROP
}
+
else -> {
width = ViewGroup.LayoutParams.MATCH_PARENT
height = ViewGroup.LayoutParams.WRAP_CONTENT
diff --git a/library/src/main/java/com/telefonica/mistica/emptystate/screen/README.md b/library/src/main/java/com/telefonica/mistica/emptystate/screen/README.md
index 570110221..6723887c7 100644
--- a/library/src/main/java/com/telefonica/mistica/emptystate/screen/README.md
+++ b/library/src/main/java/com/telefonica/mistica/emptystate/screen/README.md
@@ -12,8 +12,7 @@ Implemented as a custom view,
`com.telefonica.mistica.emptystate.screen.EmptyStateScreenView` can be
used inside any layout like a regular view.
-It supports both **attribute
-configuration and databinding for all properties**.
+It supports **attribute-based configuration for all properties**.
```xml
From 1130d12608c27a5f9e2340afd398636b359192a1 Mon Sep 17 00:00:00 2001
From: David Hontiveros Gordo
Date: Tue, 30 Dec 2025 16:09:17 +0100
Subject: [PATCH 5/7] ANDROID-16934/pr1-remove-databinding: Revert some extra
spaces
---
.../mistica/card/datacard/DataCardView.kt | 3 ---
.../mistica/emptystate/card/EmptyStateCardView.kt | 9 +++------
.../emptystate/screen/EmptyStateScreenView.kt | 14 ++++----------
3 files changed, 7 insertions(+), 19 deletions(-)
diff --git a/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt b/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt
index eb39d8207..82ad76108 100644
--- a/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt
+++ b/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt
@@ -124,17 +124,14 @@ class DataCardView @JvmOverloads constructor(
TYPE_CIRCULAR_IMAGE -> {
imageLayout.setBackgroundResource(0)
}
-
TYPE_ICON -> {
imageLayout.setBackgroundResource(0)
iconImageView.setSize(24)
}
-
TYPE_CIRCULAR_ICON -> {
imageLayout.setBackgroundResource(R.drawable.bg_datacard_icon)
iconImageView.setSize(24)
}
-
TYPE_SQUARE_IMAGE -> {
imageLayout.setBackgroundResource(0)
iconImageView.setSize(40)
diff --git a/library/src/main/java/com/telefonica/mistica/emptystate/card/EmptyStateCardView.kt b/library/src/main/java/com/telefonica/mistica/emptystate/card/EmptyStateCardView.kt
index 661c6fb05..e1c4b0130 100644
--- a/library/src/main/java/com/telefonica/mistica/emptystate/card/EmptyStateCardView.kt
+++ b/library/src/main/java/com/telefonica/mistica/emptystate/card/EmptyStateCardView.kt
@@ -144,8 +144,7 @@ class EmptyStateCardView @JvmOverloads constructor(
BUTTONS_CONFIG_PRIMARY,
BUTTONS_CONFIG_PRIMARY_LINK,
BUTTONS_CONFIG_PRIMARY_SECONDARY,
- -> View.VISIBLE
-
+ -> View.VISIBLE
else -> View.GONE
}
@@ -153,8 +152,7 @@ class EmptyStateCardView @JvmOverloads constructor(
BUTTONS_CONFIG_PRIMARY_SECONDARY,
BUTTONS_CONFIG_SECONDARY,
BUTTONS_CONFIG_SECONDARY_LINK,
- -> View.VISIBLE
-
+ -> View.VISIBLE
else -> View.GONE
}
@@ -162,8 +160,7 @@ class EmptyStateCardView @JvmOverloads constructor(
BUTTONS_CONFIG_PRIMARY_LINK,
BUTTONS_CONFIG_SECONDARY_LINK,
LINK,
- -> View.VISIBLE
-
+ -> View.VISIBLE
else -> View.GONE
}
linkButton.layoutParams = (linkButton.layoutParams as LinearLayout.LayoutParams).apply {
diff --git a/library/src/main/java/com/telefonica/mistica/emptystate/screen/EmptyStateScreenView.kt b/library/src/main/java/com/telefonica/mistica/emptystate/screen/EmptyStateScreenView.kt
index aa86767c1..f3fac6c80 100644
--- a/library/src/main/java/com/telefonica/mistica/emptystate/screen/EmptyStateScreenView.kt
+++ b/library/src/main/java/com/telefonica/mistica/emptystate/screen/EmptyStateScreenView.kt
@@ -134,22 +134,19 @@ class EmptyStateScreenView @JvmOverloads constructor(
primaryButton.visibility = when (buttonsConfig) {
BUTTONS_CONFIG_PRIMARY,
BUTTONS_CONFIG_PRIMARY_LINK,
- -> View.VISIBLE
-
+ -> View.VISIBLE
else -> View.GONE
}
secondaryButton.visibility = when (buttonsConfig) {
BUTTONS_CONFIG_SECONDARY,
BUTTONS_CONFIG_SECONDARY_LINK,
- -> View.VISIBLE
-
+ -> View.VISIBLE
else -> View.GONE
}
linkButton.visibility = when (buttonsConfig) {
BUTTONS_CONFIG_PRIMARY_LINK,
BUTTONS_CONFIG_SECONDARY_LINK,
- -> View.VISIBLE
-
+ -> View.VISIBLE
else -> View.GONE
}
}
@@ -184,7 +181,7 @@ class EmptyStateScreenView @JvmOverloads constructor(
fun setImageSize(@ImageSize imageSize: Int) {
val layoutParams = image.layoutParams as ConstraintLayout.LayoutParams
- with(layoutParams) {
+ with (layoutParams) {
when (imageSize) {
IMAGE_SIZE_ICON -> {
width = context.convertDpToPx(IMAGE_ICON_SIDE_PIXELS)
@@ -192,21 +189,18 @@ class EmptyStateScreenView @JvmOverloads constructor(
dimensionRatio = null
image.scaleType = ImageView.ScaleType.CENTER_INSIDE
}
-
IMAGE_SIZE_SMALL -> {
width = ViewGroup.LayoutParams.WRAP_CONTENT
height = context.convertDpToPx(IMAGE_SMALL_HEIGHT_PIXELS)
dimensionRatio = null
image.scaleType = ImageView.ScaleType.FIT_START
}
-
IMAGE_SIZE_FULL_WIDTH -> {
width = ViewGroup.LayoutParams.MATCH_PARENT
height = 0
dimensionRatio = "16:9"
image.scaleType = ImageView.ScaleType.CENTER_CROP
}
-
else -> {
width = ViewGroup.LayoutParams.MATCH_PARENT
height = ViewGroup.LayoutParams.WRAP_CONTENT
From 769059a82f1acf0b48c765330a8e9ef453c16387 Mon Sep 17 00:00:00 2001
From: David Hontiveros Gordo
Date: Tue, 30 Dec 2025 16:11:21 +0100
Subject: [PATCH 6/7] ANDROID-16934/pr1-remove-databinding: Remove some extra
space from "DataCardView"
---
.../java/com/telefonica/mistica/card/datacard/DataCardView.kt | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt b/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt
index 82ad76108..e10ceeae4 100644
--- a/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt
+++ b/library/src/main/java/com/telefonica/mistica/card/datacard/DataCardView.kt
@@ -89,15 +89,13 @@ class DataCardView @JvmOverloads constructor(
assetCircularImageView.visibility = View.VISIBLE
iconImageView.visibility = View.GONE
}
-
TYPE_ICON,
TYPE_CIRCULAR_ICON,
- -> {
+ -> {
iconImageView.setImageDrawable(icon)
iconImageView.visibility = View.VISIBLE
assetCircularImageView.visibility = View.GONE
}
-
TYPE_SQUARE_IMAGE -> {
iconImageView.setImageDrawable(icon)
iconImageView.visibility = View.VISIBLE
From ab7187020cf927462c45704e6e4a55ef35f1ad7d Mon Sep 17 00:00:00 2001
From: David Hontiveros Gordo
Date: Sun, 4 Jan 2026 19:56:28 +0100
Subject: [PATCH 7/7] ANDROID-16934/pr1-remove-databinding: Revert some lint
space changes
---
.../src/main/java/com/telefonica/mistica/callout/CalloutView.kt | 2 --
1 file changed, 2 deletions(-)
diff --git a/library/src/main/java/com/telefonica/mistica/callout/CalloutView.kt b/library/src/main/java/com/telefonica/mistica/callout/CalloutView.kt
index 825105a4c..f9b8e122b 100644
--- a/library/src/main/java/com/telefonica/mistica/callout/CalloutView.kt
+++ b/library/src/main/java/com/telefonica/mistica/callout/CalloutView.kt
@@ -172,14 +172,12 @@ class CalloutView @JvmOverloads constructor(
image.visibility = GONE
circularImage.visibility = GONE
}
-
CalloutViewImageConfig.SQUARE_IMAGE -> {
image.setImageResource(assetRes)
image.visibility = VISIBLE
icon.visibility = GONE
circularImage.visibility = GONE
}
-
CalloutViewImageConfig.CIRCULAR_IMAGE -> {
circularImage.setImageResource(assetRes)
circularImage.visibility = VISIBLE