From 7aeef2b5b01b20a78b7facf7e7edde8820d43937 Mon Sep 17 00:00:00 2001 From: Hitesh Kumar Date: Fri, 7 Jul 2023 12:26:26 +0530 Subject: [PATCH] TP-35050 add on input value change action on text fields renderer (#113) --- .../com/navi/uitron/model/data/CustomTextFieldData.kt | 2 ++ .../com/navi/uitron/model/data/DateTextFieldData.kt | 2 ++ .../navi/uitron/model/data/OutlinedTextFieldData.kt | 10 ++++++---- .../com/navi/uitron/render/CustomTextFieldRenderer.kt | 1 + .../com/navi/uitron/render/DateTextFieldRenderer.kt | 1 + .../navi/uitron/render/OutlinedTextFieldRenderer.kt | 1 + 6 files changed, 13 insertions(+), 4 deletions(-) diff --git a/navi-uitron/src/main/java/com/navi/uitron/model/data/CustomTextFieldData.kt b/navi-uitron/src/main/java/com/navi/uitron/model/data/CustomTextFieldData.kt index d5bf402..a509b3f 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/model/data/CustomTextFieldData.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/model/data/CustomTextFieldData.kt @@ -3,6 +3,7 @@ package com.navi.uitron.model.data data class CustomTextFieldData( var hint: String? = null, var onValueChangeAction: UiTronActionData? = null, + var onInputValueChangeAction: UiTronActionData? = null, var inputText: String? = null, var hasError: Boolean? = null, var errorMessage: String? = null, @@ -13,6 +14,7 @@ data class CustomTextFieldData( fun copyNonNull(data: CustomTextFieldData?): CustomTextFieldData { hint = data?.hint ?: hint onValueChangeAction = data?.onValueChangeAction ?: onValueChangeAction + onInputValueChangeAction = data?.onInputValueChangeAction ?: onInputValueChangeAction inputText = data?.inputText ?: inputText hasError = data?.hasError ?: hasError errorMessage = data?.errorMessage ?: errorMessage diff --git a/navi-uitron/src/main/java/com/navi/uitron/model/data/DateTextFieldData.kt b/navi-uitron/src/main/java/com/navi/uitron/model/data/DateTextFieldData.kt index 2078e65..26bb79a 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/model/data/DateTextFieldData.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/model/data/DateTextFieldData.kt @@ -5,6 +5,7 @@ data class DateTextFieldData( var dateFormat: String? = null, var dateSeparator: String? = null, var onValueChangeAction: UiTronActionData? = null, + var onInputValueChangeAction: UiTronActionData? = null, var inputText: String? = null, var hasError: Boolean? = null, var errorMessage: String? = null, @@ -16,6 +17,7 @@ data class DateTextFieldData( dateFormat = data?.dateFormat ?: dateFormat dateSeparator = data?.dateSeparator ?: dateSeparator onValueChangeAction = data?.onValueChangeAction ?: onValueChangeAction + onInputValueChangeAction = data?.onInputValueChangeAction ?: onInputValueChangeAction inputText = data?.inputText ?: inputText hasError = data?.hasError ?: hasError errorMessage = data?.errorMessage ?: errorMessage diff --git a/navi-uitron/src/main/java/com/navi/uitron/model/data/OutlinedTextFieldData.kt b/navi-uitron/src/main/java/com/navi/uitron/model/data/OutlinedTextFieldData.kt index b25c658..76f2f00 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/model/data/OutlinedTextFieldData.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/model/data/OutlinedTextFieldData.kt @@ -15,6 +15,7 @@ package com.navi.uitron.model.data data class OutlinedTextFieldData( var hint: String? = null, var onValueChangeAction: UiTronActionData? = null, + var onInputValueChangeAction: UiTronActionData? = null, var inputText: String? = null, var hasError: Boolean? = null, var errorMessage: String? = null, @@ -24,10 +25,11 @@ data class OutlinedTextFieldData( fun copyNonNull(data: OutlinedTextFieldData?): OutlinedTextFieldData { hint = data?.hint ?: hint - onValueChangeAction = data?.onValueChangeAction?:onValueChangeAction - inputText = data?.inputText?:inputText - hasError = data?.hasError?:hasError - errorMessage = data?.errorMessage?:errorMessage + onValueChangeAction = data?.onValueChangeAction ?: onValueChangeAction + onInputValueChangeAction = data?.onInputValueChangeAction ?: onInputValueChangeAction + inputText = data?.inputText ?: inputText + hasError = data?.hasError ?: hasError + errorMessage = data?.errorMessage ?: errorMessage onFocusAction = data?.onFocusAction ?: onFocusAction onDeFocusAction = data?.onDeFocusAction ?: onDeFocusAction return this 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 fe13880..adbf79c 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 @@ -182,6 +182,7 @@ class CustomTextFieldRenderer( ), value = inputValue, onValueChange = { + uiTronViewModel.handleActions(customTextFieldData?.onInputValueChangeAction) property.maxChar?.let { maxChar -> if (maxChar >= it.length) { inputValue = it diff --git a/navi-uitron/src/main/java/com/navi/uitron/render/DateTextFieldRenderer.kt b/navi-uitron/src/main/java/com/navi/uitron/render/DateTextFieldRenderer.kt index b135c79..b0ecd4d 100644 --- a/navi-uitron/src/main/java/com/navi/uitron/render/DateTextFieldRenderer.kt +++ b/navi-uitron/src/main/java/com/navi/uitron/render/DateTextFieldRenderer.kt @@ -127,6 +127,7 @@ class DateTextFieldRenderer() : Renderer { BasicTextField( value = inputDateValues[index].value, onValueChange = { value -> + uiTronViewModel.handleActions(dateTextFieldData?.onInputValueChangeAction) if (value.text.isDigitsOnly()) { if (maxCharList[index] >= value.text.length) { inputDateValues[index].value = value 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 fd5472b..ad252c5 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 @@ -125,6 +125,7 @@ class OutlinedTextFieldRenderer( ), value = inputValue, onValueChange = { + uiTronViewModel.handleActions(outlinedTextFieldData?.onInputValueChangeAction) property.maxChar?.let { maxChar -> if (maxChar >= it.length) { inputValue = it