From de9c6fb25dd7b09227b044fb25d7b14652761408 Mon Sep 17 00:00:00 2001 From: Sangaraboina Rishvik Vardhan Date: Tue, 25 Jul 2023 14:57:44 +0530 Subject: [PATCH] TP-00000 || Visual Transformation support for TextRenderer (#134) * TP-00000 || Visual Transformation support for TextRenderer * TP-00000 || Visual Text Format * TP-00000 || Resolved PR comments --- .../src/main/java/com/navi/uitron/model/ui/TextProperty.kt | 4 +++- .../src/main/java/com/navi/uitron/model/ui/UiTronView.kt | 3 ++- .../src/main/java/com/navi/uitron/render/TextRenderer.kt | 3 ++- navi-uitron/src/main/java/com/navi/uitron/utils/Ext.kt | 1 + .../transformations/DateToReadableStringTransfomation.kt | 6 ++++++ .../utils/transformations/NumberCommaTransformation.kt | 2 +- 6 files changed, 15 insertions(+), 4 deletions(-) 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 63e99ac..2f44202 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 @@ -24,7 +24,8 @@ data class TextProperty( var overflow: String? = null, var softWrap: Boolean? = null, var maxLines : Int? = null, - var textBrushData: BrushData? = null + var textBrushData: BrushData? = null, + var valueTransformation: OutlinedTextFieldValueTransformation? = null ) : BaseProperty() { override fun copyNonNullFrom(property: BaseProperty?) { super.copyNonNullFrom(property) @@ -42,5 +43,6 @@ data class TextProperty( textProperty?.softWrap?.let { softWrap = it } textProperty?.maxLines?.let { maxLines = it } textProperty?.textBrushData?.let { textBrushData = it } + textProperty?.valueTransformation?.let { valueTransformation = it } } } \ No newline at end of file diff --git a/navi-uitron/src/main/java/com/navi/uitron/model/ui/UiTronView.kt b/navi-uitron/src/main/java/com/navi/uitron/model/ui/UiTronView.kt index 058fb7b..00bd631 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/model/ui/UiTronView.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/model/ui/UiTronView.kt @@ -271,7 +271,8 @@ enum class VisualTransformationType { enum class InputTransformationType { NUMBER_TO_WORDS, - DOB_TO_READABLE_STRING + DOB_TO_READABLE_STRING, + MONEY_WITH_RUPEE_SYMBOL } enum class GravityType { 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 f967964..63616cf 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 @@ -35,6 +35,7 @@ import getText import getTextAlignment import getTextDecoration import getTextOverflow +import getTransformedText import hexToComposeColor import orFalse import orTrue @@ -86,7 +87,7 @@ class TextRenderer : Renderer { if (property.visible.orTrue()) { Text( - text = uiTronTextData?.text?.getText(uiTronTextData.textFormatter).orEmpty(), + text = (getTransformedText(property.valueTransformation, uiTronTextData?.text.orEmpty())?:uiTronTextData?.text)?.getText(uiTronTextData?.textFormatter).orEmpty(), fontFamily = UiTronSdkManager.getDependencyProvider() .getFontFamily(property.fontFamily), fontWeight = UiTronSdkManager.getDependencyProvider() 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 de4f4e2..ff952c2 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 @@ -297,6 +297,7 @@ fun getTransformedText( inputText, valueTransformation.formatPattern ) + InputTransformationType.MONEY_WITH_RUPEE_SYMBOL.name -> moneyFormat(inputText).let { "₹ $it" } else -> null } } ?: return null diff --git a/navi-uitron/src/main/java/com/navi/uitron/utils/transformations/DateToReadableStringTransfomation.kt b/navi-uitron/src/main/java/com/navi/uitron/utils/transformations/DateToReadableStringTransfomation.kt index 05c8130..5c240a0 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/utils/transformations/DateToReadableStringTransfomation.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/utils/transformations/DateToReadableStringTransfomation.kt @@ -118,6 +118,12 @@ private fun getDateValueIndices( "yyyy" -> IntRange(0, 3) else -> IntRange(-1, -1) } + "yyyy-MM-dd"-> when (dateType) { + "dd" -> IntRange(8, inputLength - 1) + "MM" -> IntRange(5, 6) + "yyyy" -> IntRange(0, 3) + else -> IntRange(-1, -1) + } else -> IntRange(0, 0) } } diff --git a/navi-uitron/src/main/java/com/navi/uitron/utils/transformations/NumberCommaTransformation.kt b/navi-uitron/src/main/java/com/navi/uitron/utils/transformations/NumberCommaTransformation.kt index 9c56b40..335f583 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/utils/transformations/NumberCommaTransformation.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/utils/transformations/NumberCommaTransformation.kt @@ -28,7 +28,7 @@ class NumberCommaTransformation : VisualTransformation { } } -private fun moneyFormat(value: String): String { +fun moneyFormat(value: String): String { if (value.isEmpty()) return value var tempValue = value.toDoubleWithSafe().toLong().toString() var result = ""