diff --git a/app/src/test/snapshots/images/com.navi.uitron.render_TextRendererTest_test.png b/app/src/test/snapshots/images/com.navi.uitron.render_TextRendererTest_test.png index e02c9d1..506ca14 100644 Binary files a/app/src/test/snapshots/images/com.navi.uitron.render_TextRendererTest_test.png and b/app/src/test/snapshots/images/com.navi.uitron.render_TextRendererTest_test.png differ diff --git a/navi-uitron/src/main/java/com/navi/uitron/model/ui/OutlinedTextFieldProperty.kt b/navi-uitron/src/main/java/com/navi/uitron/model/ui/OutlinedTextFieldProperty.kt index f9bd547..8b99428 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/model/ui/OutlinedTextFieldProperty.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/model/ui/OutlinedTextFieldProperty.kt @@ -59,7 +59,8 @@ data class OutlinedTextFieldTextStyle( val color: String? = null, val fontFamily: String? = null, val fontWeight: String? = null, - val textAlign: String? = null + val textAlign: String? = null, + var includeFontPadding: Boolean? = null ) data class OutlinedTextFieldColors( diff --git a/navi-uitron/src/main/java/com/navi/uitron/model/ui/SpannableProperty.kt b/navi-uitron/src/main/java/com/navi/uitron/model/ui/SpannableProperty.kt index 4599f07..a596022 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/model/ui/SpannableProperty.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/model/ui/SpannableProperty.kt @@ -2,7 +2,8 @@ package com.navi.uitron.model.ui data class SpannableProperty( var textAlign: String? = null, - val spanProperty: List + val spanProperty: List, + var includeFontPadding: Boolean? = null ) : BaseProperty() data class SpanProperty( diff --git a/navi-uitron/src/main/java/com/navi/uitron/model/ui/TextProperty.kt b/navi-uitron/src/main/java/com/navi/uitron/model/ui/TextProperty.kt index 2630c0b..6d2acf8 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/model/ui/TextProperty.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/model/ui/TextProperty.kt @@ -26,7 +26,8 @@ data class TextProperty( var maxLines : Int? = null, var textBrushData: BrushData? = null, var valueTransformation: OutlinedTextFieldValueTransformation? = null, - var textShadow: TextShadow? = null + var textShadow: TextShadow? = null, + var includeFontPadding: Boolean? = null ) : BaseProperty() { override fun copyNonNullFrom(property: BaseProperty?) { super.copyNonNullFrom(property) @@ -45,6 +46,7 @@ data class TextProperty( textProperty?.maxLines?.let { maxLines = it } textProperty?.textBrushData?.let { textBrushData = it } textProperty?.valueTransformation?.let { valueTransformation = it } + textProperty?.includeFontPadding?.let { includeFontPadding = it } } data class TextShadow( diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/CustomTextFieldRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/CustomTextFieldRenderer.kt index f29bb34..9da20d7 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/CustomTextFieldRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/CustomTextFieldRenderer.kt @@ -41,6 +41,7 @@ import androidx.compose.ui.platform.LocalTextToolbar import androidx.compose.ui.platform.LocalView import androidx.compose.ui.platform.TextToolbar import androidx.compose.ui.platform.TextToolbarStatus +import androidx.compose.ui.text.PlatformTextStyle import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp @@ -287,7 +288,10 @@ class CustomTextFieldRenderer( fontFamily = UiTronSdkManager.getDependencyProvider() .getFontFamily(property.inputTextProperty?.textStyle?.fontFamily), fontWeight = UiTronSdkManager.getDependencyProvider() - .getFontWeight(property.inputTextProperty?.textStyle?.fontWeight) + .getFontWeight(property.inputTextProperty?.textStyle?.fontWeight), + platformStyle = PlatformTextStyle( + includeFontPadding = property.inputTextProperty?.textStyle?.includeFontPadding.orTrue() + ) ), keyboardOptions = KeyboardOptions( capitalization = KeyboardUtil.getKeyboardCapitalization(property.keyboardOptions?.capitalization), diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/JackpotRendererV2.kt b/navi-uitron/src/main/java/com/navi/uitron/render/JackpotRendererV2.kt index 3e9d1b7..77b41b0 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/JackpotRendererV2.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/JackpotRendererV2.kt @@ -31,6 +31,7 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.layoutId import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.text.PlatformTextStyle import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp @@ -212,7 +213,10 @@ class JackpotTextRendererV2 : Renderer { textDecoration = getTextDecoration(property.textProperty?.textDecoration), letterSpacing = property.textProperty?.letterSpacing?.sp ?: 0.sp, style = TextStyle( - textAlign = TextAlign.Center + textAlign = TextAlign.Center, + platformStyle = PlatformTextStyle( + includeFontPadding = property.textProperty?.includeFontPadding.orTrue() + ) ), modifier = Modifier .widthIn( diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/OtpBoxRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/OtpBoxRenderer.kt index c4a4086..868a27b 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/OtpBoxRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/OtpBoxRenderer.kt @@ -40,6 +40,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalFocusManager import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.text.PlatformTextStyle import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.text.style.TextAlign @@ -344,7 +345,10 @@ class OtpBoxRenderer : Renderer { .getFontFamily(property.inputTextProperty?.textStyle?.fontFamily), fontWeight = UiTronSdkManager.getDependencyProvider() .getFontWeight(property.inputTextProperty?.textStyle?.fontWeight), - textAlign = TextAlign.Center + textAlign = TextAlign.Center, + platformStyle = PlatformTextStyle( + includeFontPadding = property.inputTextProperty?.textStyle?.includeFontPadding.orTrue() + ) ), keyboardOptions = KeyboardOptions( capitalization = KeyboardUtil.getKeyboardCapitalization(property.keyboardOptions?.capitalization), diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/OutlinedTextFieldRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/OutlinedTextFieldRenderer.kt index c9d21b8..a202608 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/OutlinedTextFieldRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/OutlinedTextFieldRenderer.kt @@ -24,6 +24,7 @@ import androidx.compose.ui.layout.layoutId import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalSoftwareKeyboardController import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.text.PlatformTextStyle import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.input.VisualTransformation import androidx.compose.ui.unit.dp @@ -149,7 +150,10 @@ class OutlinedTextFieldRenderer( fontFamily = UiTronSdkManager.getDependencyProvider() .getFontFamily(property.textStyle.fontFamily), fontWeight = UiTronSdkManager.getDependencyProvider() - .getFontWeight(property.textStyle.fontWeight) + .getFontWeight(property.textStyle.fontWeight), + platformStyle = PlatformTextStyle( + includeFontPadding = property.textStyle.includeFontPadding.orTrue() + ) ), keyboardOptions = KeyboardOptions( capitalization = KeyboardUtil.getKeyboardCapitalization(property.keyboardOptions?.capitalization), diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/SlideToActButtonRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/SlideToActButtonRenderer.kt index 3460557..b096917 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/SlideToActButtonRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/SlideToActButtonRenderer.kt @@ -47,6 +47,7 @@ import androidx.compose.ui.layout.layoutId import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.text.PlatformTextStyle import androidx.compose.ui.text.TextStyle import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.IntSize @@ -368,7 +369,10 @@ class SlideToActButtonRenderer( .layoutId(property.layoutId.orEmpty()) .alpha(visibility), style = TextStyle( - brush = shimmerBrush(showShimmer = showShimmer, property.shimmerColors) + brush = shimmerBrush(showShimmer = showShimmer, property.shimmerColors), + platformStyle = PlatformTextStyle( + includeFontPadding = property.textProperty?.includeFontPadding.orTrue() + ) ) ) AnimatedVisibility( diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/SpannableTextRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/SpannableTextRenderer.kt index ec11a69..df41e71 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/SpannableTextRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/SpannableTextRenderer.kt @@ -10,6 +10,7 @@ import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color import androidx.compose.ui.layout.layoutId import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.text.PlatformTextStyle import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.buildAnnotatedString @@ -172,7 +173,10 @@ class SpannableTextRenderer : Renderer { id = property.layoutId.orEmpty() )}, style = TextStyle( - textAlign = getTextAlignment(property.textAlign) + textAlign = getTextAlignment(property.textAlign), + platformStyle = PlatformTextStyle( + includeFontPadding = property.includeFontPadding.orTrue() + ) ) ) } ?: run { @@ -197,7 +201,10 @@ class SpannableTextRenderer : Renderer { .alpha(property.alpha ?: 1.0f) }, style = TextStyle( - textAlign = getTextAlignment(property.textAlign) + textAlign = getTextAlignment(property.textAlign), + platformStyle = PlatformTextStyle( + includeFontPadding = property.includeFontPadding.orTrue() + ) ), onClick = { offset -> spannableData?.spanData?.forEach { spanData -> diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/TextRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/TextRenderer.kt index ae642c2..61695b5 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/TextRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/TextRenderer.kt @@ -18,6 +18,7 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Shadow import androidx.compose.ui.layout.layoutId import androidx.compose.ui.platform.LocalView +import androidx.compose.ui.text.PlatformTextStyle import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.unit.TextUnit @@ -123,6 +124,9 @@ class TextRenderer : Renderer { dpToPx(property.textShadow?.offset?.y.orZero()) ), blurRadius = dpToPx(property.textShadow?.blurRadius.orZero()) + ), + platformStyle = PlatformTextStyle( + includeFontPadding = property.includeFontPadding.orTrue() ) ), modifier = diff --git a/navi-uitron/src/main/java/com/navi/uitron/utils/Ext.kt b/navi-uitron/src/main/java/com/navi/uitron/utils/Ext.kt index d9ecb0c..fef12e1 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/utils/Ext.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/utils/Ext.kt @@ -40,6 +40,7 @@ import androidx.compose.ui.layout.boundsInWindow import androidx.compose.ui.layout.onGloballyPositioned import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.platform.testTag +import androidx.compose.ui.text.PlatformTextStyle import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDecoration @@ -709,7 +710,10 @@ fun getTextStyle(textStyle: OutlinedTextFieldTextStyle): TextStyle { color = textStyle.color?.hexToComposeColor ?: Color.Black, fontFamily = UiTronSdkManager.getDependencyProvider().getFontFamily(textStyle.fontFamily), fontWeight = UiTronSdkManager.getDependencyProvider().getFontWeight(textStyle.fontWeight), - textAlign = getTextAlignment(textStyle.textAlign) + textAlign = getTextAlignment(textStyle.textAlign), + platformStyle = PlatformTextStyle( + includeFontPadding = textStyle.includeFontPadding.orTrue() + ) ) }