From bb78cb2ce9d5688a5d2dac666897af6958f37067 Mon Sep 17 00:00:00 2001 From: Aparna Vadlamani Date: Thu, 17 Aug 2023 13:57:29 +0530 Subject: [PATCH] TP-38094 [Bug] DOB text overflow issue (#151) --- .../render/MultiSectionTextFieldRenderer.kt | 10 +++++++++- .../src/main/java/com/navi/uitron/utils/Ext.kt | 17 +++++++++++++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/MultiSectionTextFieldRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/MultiSectionTextFieldRenderer.kt index 761b277..0f74030 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/MultiSectionTextFieldRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/MultiSectionTextFieldRenderer.kt @@ -41,9 +41,12 @@ import isNotNullAndNotEmpty import isNull import orFalse import orTrue +import orZero +import pxToDp import setHeight import setPadding import setWidth +import spToPx import splitStringIntoUnequalParts import java.util.* @@ -160,6 +163,11 @@ class MultiSectionTextFieldRenderer() : Renderer ?: defaultMaxCharList[index] } (0 until property.textFieldPropertyList.size).forEach { index -> + val fieldWidth = pxToDp( + spToPx( + property.textFieldPropertyList[index].textStyle.fontSize ?: 14 + ) * maxCharList[index] + ).toInt() + property.textFieldPropertyList[index].padding?.start.orZero() + property.textFieldPropertyList[index].padding?.end.orZero() var cursorPosition by remember { mutableStateOf(inputValues[index].value.text.length) } BasicTextField( value = inputValues[index].value, @@ -206,7 +214,7 @@ class MultiSectionTextFieldRenderer() : Renderer uiTronViewModel.handleActions(multiSectionTextFieldData?.onInputValueChangeAction) }, modifier = Modifier - .setWidth(property.textFieldPropertyList[index].width) + .setWidth(fieldWidth.toString()) .setHeight(property.textFieldPropertyList[index].height) .setPadding(property.textFieldPropertyList[index].padding) .onKeyEvent { event -> 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 d066f77..b8f77b9 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 @@ -28,10 +28,13 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.SolidColor import androidx.compose.ui.graphics.TileMode import androidx.compose.ui.layout.ContentScale +import androidx.compose.ui.platform.LocalContext +import androidx.compose.ui.platform.LocalDensity import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextDecoration import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import androidx.constraintlayout.compose.ConstrainedLayoutReference @@ -410,6 +413,20 @@ fun dpToPx(inpDp: Int): Float { return (inpDp * Resources.getSystem().displayMetrics.density) } +@Composable +fun pxToDp(px: Float): Float { + return with(LocalDensity.current) { + px.toDp().value + } +} + +@Composable +fun spToPx(intSp: Int): Float { + return with(LocalDensity.current) { + intSp.sp.toPx() + } +} + fun Boolean?.orTrue() = this ?: true fun Boolean?.orFalse() = this ?: false