Skip to content

Commit

Permalink
fix: [ANDROAPP-6104] new Branch from 3.0.0.2
Browse files Browse the repository at this point in the history
  • Loading branch information
xavimolloy committed Jul 3, 2024
1 parent 271ac2c commit 4dc0b31
Show file tree
Hide file tree
Showing 5 changed files with 44 additions and 22 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -363,7 +363,8 @@ private void initSearchParameters() {
uid,
selectedOrgUnit,
ValueType.ORGANISATION_UNIT,
null
null,
true
)
);
return Unit.INSTANCE;
Expand Down
3 changes: 2 additions & 1 deletion form/src/main/java/org/dhis2/form/ui/FormViewModel.kt
Original file line number Diff line number Diff line change
Expand Up @@ -398,6 +398,7 @@ class FormViewModel(
intent.valueType,
intent.value,
intent.fieldMask,
intent.allowFutureDates,
)

createRowAction(
Expand Down Expand Up @@ -586,7 +587,7 @@ class FormViewModel(
try {
val date = LocalDate.parse(dateString, formatter)
if (allowFutureDates == false && date.isAfter(LocalDate.now())) {
return Result.Failure(DateFailure.ParseException)
return Result.Failure(Throwable())
}
return valueType.validator.validate(dateString)
} catch (e: DateTimeParseException) {
Expand Down
2 changes: 1 addition & 1 deletion form/src/main/java/org/dhis2/form/ui/intent/FormIntent.kt
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ sealed class FormIntent {
val value: String?,
val valueType: ValueType?,
val fieldMask: String? = null,
val allowFutureDates: Boolean? = false,
) : FormIntent()

data class OnQrCodeScanned(
Expand All @@ -42,7 +43,6 @@ sealed class FormIntent {
val uid: String,
val value: String?,
val valueType: ValueType?,
val allowFutureDates: Boolean? = false,
) : FormIntent()

data class ClearValue(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,13 +102,17 @@ fun ProvideInputAge(
}

is AgeInputType.DateOfBirth -> {
saveValue(
intentHandler,
fieldUiModel.uid,
formatUIDateToStored(type.value.text),
fieldUiModel.valueType,
fieldUiModel.allowFutureDates,
)
formatUIDateToStored(type.value.text)
.takeIf { it != fieldUiModel.value }
?.let {
saveValue(
intentHandler,
fieldUiModel.uid,
it,
fieldUiModel.valueType,
fieldUiModel.allowFutureDates,
)
}
}

AgeInputType.None -> {
Expand All @@ -135,14 +139,23 @@ private fun saveValue(
valueType: ValueType?,
allowFutureDates: Boolean?,
) {
intentHandler.invoke(
FormIntent.OnTextChange(
uid,
value,
valueType,
allowFutureDates ?: false,
),
)
when (value?.length) {
null, 10 -> intentHandler.invoke(
FormIntent.OnSave(
uid,
value,
valueType,
allowFutureDates = allowFutureDates,
),
)
else -> intentHandler.invoke(
FormIntent.OnTextChange(
uid,
value,
valueType,
),
)
}
}

private fun formatStoredDateToUI(inputDateString: String): String {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -69,14 +69,21 @@ fun ProvideInputDate(
onNextClicked = onNextClicked,
onValueChanged = {
value = it ?: TextFieldValue()
intentHandler.invoke(
val formIntent = if (value.text.length == 8) {
FormIntent.OnSave(
uid = fieldUiModel.uid,
value = formatUIDateToStored(it?.text, fieldUiModel.valueType),
valueType = fieldUiModel.valueType,
allowFutureDates = fieldUiModel.allowFutureDates,
)
} else {
FormIntent.OnTextChange(
uid = fieldUiModel.uid,
value = formatUIDateToStored(it?.text, fieldUiModel.valueType),
valueType = fieldUiModel.valueType,
allowFutureDates = fieldUiModel.allowFutureDates ?: true,
),
)
)
}
intentHandler.invoke(formIntent)
},
selectableDates = selectableDates,
yearRange = yearIntRange,
Expand Down

0 comments on commit 4dc0b31

Please sign in to comment.