Skip to content

Commit 0e4c28d

Browse files
authored
ANDROID-16983 fix link padding in HighLightedCard (#463)
* ANDROID-16983 Fix link padding in HighLightedCard * ANDROID-16983 Fixing classic views highlighted card link padding
1 parent c6ac988 commit 0e4c28d

File tree

4 files changed

+68
-31
lines changed

4 files changed

+68
-31
lines changed

library/src/main/java/com/telefonica/mistica/compose/button/Button.kt

Lines changed: 31 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ fun Button(
6969
@DrawableRes icon: Int? = null,
7070
withChevron: Boolean = false,
7171
invalidatePaddings: Boolean = false,
72+
invalidateMinWidth: Boolean = false,
7273
onClickListener: () -> Unit,
7374
) {
7475

@@ -83,7 +84,14 @@ fun Button(
8384
CompositionLocalProvider(LocalRippleConfiguration provides style.rippleConfiguration) {
8485
androidx.compose.material.Button(
8586
modifier = modifier
86-
.defaultMinSize(size.minWidth, size.height)
87+
.then(
88+
if (invalidateMinWidth)
89+
Modifier
90+
.defaultMinSize(minWidth = 0.dp, minHeight = size.height)
91+
else
92+
Modifier
93+
.defaultMinSize(minWidth = size.minWidth, minHeight = size.height)
94+
)
8795
.onGloballyPositioned {
8896
if (originalWidth == null) {
8997
val extraSpace = if (loadingText.isNotEmpty()) {
@@ -95,7 +103,7 @@ fun Button(
95103
}
96104
}
97105
.height(size.height)
98-
.applyWidth(originalWidth),
106+
.then(if (!invalidateMinWidth) Modifier.applyWidth(originalWidth) else Modifier),
99107
contentPadding = PaddingValues(horizontal = if (invalidatePaddings) 0.dp else size.horizontalPadding, vertical = 0.dp),
100108
onClick = onClickListener,
101109
enabled = enabled,
@@ -238,47 +246,47 @@ enum class ButtonStyle {
238246

239247
@Preview
240248
@Composable
241-
fun ButtonPreview(@PreviewParameter(PreviewBooleanProvider::class) enabled: Boolean) {
249+
private fun ButtonPreview(@PreviewParameter(PreviewBooleanProvider::class) enabled: Boolean) {
242250
PreviewTheme {
243251
Button(text = "Text", loadingText = "Loading", enabled = enabled, isLoading = false) {}
244252
}
245253
}
246254

247255
@Preview
248256
@Composable
249-
fun ProgressButtonNewPreview() {
257+
private fun ProgressButtonNewPreview() {
250258
PreviewTheme {
251259
Button(text = "Text", loadingText = "Loading", isLoading = true) {}
252260
}
253261
}
254262

255263
@Preview
256264
@Composable
257-
fun ProgressButtonNoTextPreview() {
265+
private fun ProgressButtonNoTextPreview() {
258266
PreviewTheme {
259267
Button(text = "Text", isLoading = true) {}
260268
}
261269
}
262270

263271
@Preview
264272
@Composable
265-
fun ProgressButtonIconPreview() {
273+
private fun ProgressButtonIconPreview() {
266274
PreviewTheme {
267275
Button(text = "Text", icon = R.drawable.icn_creditcard) {}
268276
}
269277
}
270278

271279
@Preview
272280
@Composable
273-
fun ProgressButtonIconSmallPreview() {
281+
private fun ProgressButtonIconSmallPreview() {
274282
PreviewTheme {
275283
Button(text = "Text", icon = R.drawable.icn_creditcard, buttonStyle = ButtonStyle.PRIMARY_SMALL) {}
276284
}
277285
}
278286

279287
@Preview
280288
@Composable
281-
fun LinkWithChevronPreview() {
289+
private fun LinkWithChevronPreview() {
282290
PreviewTheme {
283291
Button(
284292
text = "Text",
@@ -291,7 +299,7 @@ fun LinkWithChevronPreview() {
291299

292300
@Preview
293301
@Composable
294-
fun DangerLinkWithChevronPreview() {
302+
private fun DangerLinkPreview() {
295303
PreviewTheme {
296304
Button(
297305
text = "Text",
@@ -301,6 +309,20 @@ fun DangerLinkWithChevronPreview() {
301309
}
302310
}
303311

312+
@Preview
313+
@Composable
314+
private fun LinkWithoutPaddingsPreview() {
315+
PreviewTheme {
316+
Button(
317+
text = "Link text",
318+
buttonStyle = ButtonStyle.LINK,
319+
onClickListener = {},
320+
invalidatePaddings = true,
321+
invalidateMinWidth = true,
322+
)
323+
}
324+
}
325+
304326
class PreviewBooleanProvider : PreviewParameterProvider<Boolean> {
305327
override val values = sequenceOf(false, true)
306328
}

library/src/main/java/com/telefonica/mistica/compose/card/highlightedcard/HighLightedCard.kt

Lines changed: 18 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import androidx.compose.material.Text
1818
import androidx.compose.material.icons.Icons
1919
import androidx.compose.material.icons.filled.Close
2020
import androidx.compose.runtime.Composable
21+
import androidx.compose.runtime.key
2122
import androidx.compose.ui.Alignment
2223
import androidx.compose.ui.Modifier
2324
import androidx.compose.ui.draw.drawBehind
@@ -131,7 +132,7 @@ fun HighLightedCard(
131132
.padding(bottom = verticalMargin),
132133
inverseDisplay = inverseDisplay,
133134
buttonConfig = button,
134-
onButtonClick = onButtonClick
135+
onButtonClick = onButtonClick,
135136
)
136137

137138
HighLightCardImage(
@@ -223,18 +224,27 @@ private fun HighLightCardButton(
223224
){
224225
val buttonStyle = buttonConfig.getButtonStyle(inverseDisplay)
225226

226-
if (buttonStyle != null){
227-
Button(
228-
modifier = modifier,
229-
text = buttonConfig.buttonText,
230-
buttonStyle = buttonStyle,
231-
onClickListener = onButtonClick
232-
)
227+
if (buttonStyle != null) {
228+
key(buttonStyle) {
229+
val isLink = buttonStyle == ButtonStyle.LINK || buttonStyle == ButtonStyle.LINK_INVERSE
230+
Button(
231+
modifier = modifier,
232+
text = if (isLink) applyLinkTextFix(buttonConfig.buttonText) else buttonConfig.buttonText,
233+
buttonStyle = buttonStyle,
234+
invalidatePaddings = isLink,
235+
invalidateMinWidth = isLink,
236+
onClickListener = onButtonClick,
237+
)
238+
}
233239
}else{
234240
Spacer(modifier = modifier)
235241
}
236242
}
237243

244+
private fun applyLinkTextFix(text: String): String {
245+
return text.padEnd(18, ' ')
246+
}
247+
238248
enum class HighLightCardImageConfig {
239249
FIT,
240250
FILL,
@@ -287,4 +297,3 @@ data class HighLightCardCustomBackgroundSettings(
287297
val withCustomBackground: Boolean
288298
get() = this.bitmap != null || this.drawableResource != null
289299
}
290-

library/src/main/java/com/telefonica/mistica/compose/card/highlightedcard/HighLightedCardsPreviews.kt

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import com.telefonica.mistica.util.PreviewTheme
1313

1414
@Preview(name = "Only Title and text")
1515
@Composable
16-
fun PreviewHighLightedCardOnlyTitleAndText() {
16+
private fun PreviewHighLightedCardOnlyTitleAndText() {
1717
PreviewTheme {
1818
Column(
1919
modifier = Modifier
@@ -31,7 +31,7 @@ fun PreviewHighLightedCardOnlyTitleAndText() {
3131

3232
@Preview(name = "Only Title,Text, Close Button")
3333
@Composable
34-
fun PreviewHighLightedCardTitleTextAndCloseButton() {
34+
private fun PreviewHighLightedCardTitleTextAndCloseButton() {
3535
PreviewTheme {
3636
Column(
3737
modifier = Modifier
@@ -50,7 +50,7 @@ fun PreviewHighLightedCardTitleTextAndCloseButton() {
5050

5151
@Preview(name = "Only Title,Text, Close Button, Action Button Primary")
5252
@Composable
53-
fun PreviewHighLightedCardTitleTextCloseButtonAndButtonPrimary() {
53+
private fun PreviewHighLightedCardTitleTextCloseButtonAndButtonPrimary() {
5454
PreviewTheme {
5555
Column(
5656
modifier = Modifier
@@ -70,7 +70,7 @@ fun PreviewHighLightedCardTitleTextCloseButtonAndButtonPrimary() {
7070

7171
@Preview(name = "[Inverse] Only Title,Text, Close Button, Action Button Primary")
7272
@Composable
73-
fun PreviewInverseHighLightedCardTitleTextCloseButtonAndButtonPrimary() {
73+
private fun PreviewInverseHighLightedCardTitleTextCloseButtonAndButtonPrimary() {
7474
PreviewTheme {
7575
Column(
7676
modifier = Modifier
@@ -91,7 +91,7 @@ fun PreviewInverseHighLightedCardTitleTextCloseButtonAndButtonPrimary() {
9191

9292
@Preview(name = "Only Title,Text, Close Button, Action Button Secondary")
9393
@Composable
94-
fun PreviewHighLightedCardTitleTextCloseButtonAndButtonSecondary() {
94+
private fun PreviewHighLightedCardTitleTextCloseButtonAndButtonSecondary() {
9595
PreviewTheme {
9696
Column(
9797
modifier = Modifier
@@ -111,7 +111,7 @@ fun PreviewHighLightedCardTitleTextCloseButtonAndButtonSecondary() {
111111

112112
@Preview(name = "Inverse Only Title,Text, Close Button, Action Button Secondary")
113113
@Composable
114-
fun PreviewInverseHighLightedCardTitleTextCloseButtonAndButtonSecondary() {
114+
private fun PreviewInverseHighLightedCardTitleTextCloseButtonAndButtonSecondary() {
115115
PreviewTheme {
116116
Column(
117117
modifier = Modifier
@@ -132,7 +132,7 @@ fun PreviewInverseHighLightedCardTitleTextCloseButtonAndButtonSecondary() {
132132

133133
@Preview(name = "Only Title,Text, Close Button, Action Button Link")
134134
@Composable
135-
fun PreviewHighLightedCardTitleTextCloseButtonAndButtonLink() {
135+
private fun PreviewHighLightedCardTitleTextCloseButtonAndButtonLink() {
136136
PreviewTheme {
137137
Column(
138138
modifier = Modifier
@@ -152,7 +152,7 @@ fun PreviewHighLightedCardTitleTextCloseButtonAndButtonLink() {
152152

153153
@Preview(name = "Only Title,Text, Close Button, Action Button Link")
154154
@Composable
155-
fun PreviewInverseHighLightedCardTitleTextCloseButtonAndButtonLink() {
155+
private fun PreviewInverseHighLightedCardTitleTextCloseButtonAndButtonLink() {
156156
PreviewTheme {
157157
Column(
158158
modifier = Modifier
@@ -173,7 +173,7 @@ fun PreviewInverseHighLightedCardTitleTextCloseButtonAndButtonLink() {
173173

174174
@Preview(name = "Only Title,Text, Close Button, Action Button Link, Image Fit")
175175
@Composable
176-
fun PreviewHighLightedCardTitleTextCloseButtonButtonLinkAndImageFit() {
176+
private fun PreviewHighLightedCardTitleTextCloseButtonButtonLinkAndImageFit() {
177177
PreviewTheme {
178178
Column(
179179
modifier = Modifier
@@ -194,7 +194,7 @@ fun PreviewHighLightedCardTitleTextCloseButtonButtonLinkAndImageFit() {
194194

195195
@Preview(name = "Only Title,Text, Close Button, Action Button Link, Image Fill")
196196
@Composable
197-
fun PreviewHighLightedCardTitleTextCloseButtonButtonLinkAndImageFill() {
197+
private fun PreviewHighLightedCardTitleTextCloseButtonButtonLinkAndImageFill() {
198198
PreviewTheme {
199199
Column(
200200
modifier = Modifier
@@ -215,7 +215,7 @@ fun PreviewHighLightedCardTitleTextCloseButtonButtonLinkAndImageFill() {
215215

216216
@Preview(name = "Only Title,Text, Close Button, Action Button Link, Image Fill, Background")
217217
@Composable
218-
fun PreviewHighLightedCardTitleTextCloseButtonButtonLinkAndImageFillBackground() {
218+
private fun PreviewHighLightedCardTitleTextCloseButtonButtonLinkAndImageFillBackground() {
219219
PreviewTheme {
220220
Column(
221221
modifier = Modifier

library/src/main/java/com/telefonica/mistica/highlightedcard/HighlightedCardView.kt

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -356,9 +356,15 @@ class HighlightedCardView @JvmOverloads constructor(
356356

357357
button?.setOnClickListener(buttonClickListener)
358358
button?.text = buttonText
359+
360+
if (buttonStyle == BUTTON_STYLE_LINK) {
361+
button?.setPadding(0, 0, 0, 0)
362+
button?.minimumWidth = 0
363+
}
364+
359365
if (this.button != button) {
360-
button?.visibility = View.VISIBLE
361-
this.button?.visibility = View.GONE
366+
button?.visibility = VISIBLE
367+
this.button?.visibility = GONE
362368
this.button = button
363369
}
364370
}

0 commit comments

Comments
 (0)