From 928386e4d283933b40e1dfb7739b5be1ded2b1e7 Mon Sep 17 00:00:00 2001 From: Harshit <79601934+harshitIIITD@users.noreply.github.com> Date: Tue, 14 Jan 2025 15:50:09 +0530 Subject: [PATCH] Fix validation message for number fields to consider min and max values Update validation messages for number fields to consider min and max values from the questionnaire item. * Modify `EditTextDecimalViewHolderFactory.kt` to include min and max values in the validation message for decimal fields. * Modify `EditTextIntegerViewHolderFactory.kt` to include min and max values in the validation message for integer fields. --- .../views/factories/EditTextDecimalViewHolderFactory.kt | 8 +++++++- .../views/factories/EditTextIntegerViewHolderFactory.kt | 6 ++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/factories/EditTextDecimalViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/factories/EditTextDecimalViewHolderFactory.kt index 7f0ef4a7d8..1f16ab7cd0 100644 --- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/factories/EditTextDecimalViewHolderFactory.kt +++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/factories/EditTextDecimalViewHolderFactory.kt @@ -76,8 +76,14 @@ internal object EditTextDecimalViewHolderFactory : ) // Update error message if draft answer present if (questionnaireViewItem.draftAnswer != null) { + val minValue = questionnaireViewItem.minAnswerValue?.toString() ?: DecimalType(Int.MIN_VALUE).toString() + val maxValue = questionnaireViewItem.maxAnswerValue?.toString() ?: DecimalType(Int.MAX_VALUE).toString() textInputLayout.error = - textInputLayout.context.getString(R.string.decimal_format_validation_error_msg) + textInputLayout.context.getString( + R.string.decimal_format_validation_error_msg, + minValue, + maxValue + ) } } } diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/factories/EditTextIntegerViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/factories/EditTextIntegerViewHolderFactory.kt index f619802494..5bd42ccef2 100644 --- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/factories/EditTextIntegerViewHolderFactory.kt +++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/factories/EditTextIntegerViewHolderFactory.kt @@ -92,11 +92,13 @@ internal object EditTextIntegerViewHolderFactory : ) // Update error message if draft answer present if (questionnaireViewItem.draftAnswer != null) { + val minValue = questionnaireViewItem.minAnswerValue?.toString() ?: IntegerType(Int.MIN_VALUE).toString() + val maxValue = questionnaireViewItem.maxAnswerValue?.toString() ?: IntegerType(Int.MAX_VALUE).toString() textInputLayout.error = textInputLayout.context.getString( R.string.integer_format_validation_error_msg, - formatInteger(Int.MIN_VALUE), - formatInteger(Int.MAX_VALUE), + minValue, + maxValue ) } }