diff --git a/collect_app/src/androidTest/java/org/odk/collect/android/feature/formentry/EntityFormTest.kt b/collect_app/src/androidTest/java/org/odk/collect/android/feature/formentry/EntityFormTest.kt
index 0c4fe141e66..fd7b1d07abb 100644
--- a/collect_app/src/androidTest/java/org/odk/collect/android/feature/formentry/EntityFormTest.kt
+++ b/collect_app/src/androidTest/java/org/odk/collect/android/feature/formentry/EntityFormTest.kt
@@ -23,6 +23,22 @@ class EntityFormTest {
val ruleChain: RuleChain = TestRuleChain.chain(testDependencies)
.around(rule)
+ @Test
+ fun fillingEntityRegistrationForm_createsEntityWithValuesTreatedAsOpaqueStrings() {
+ testDependencies.server.addForm("entities-with-dates-registration.xml")
+ testDependencies.server.addForm("entities-with-dates-follow-up.xml")
+
+ rule.withMatchExactlyProject(testDependencies.server.url)
+ .startBlankForm("Entities With Dates Registration")
+ .swipeToEndScreen()
+ .clickFinalize()
+
+ .startBlankForm("Entities With Dates Follow Up")
+ // .assertText("2024-11-15")
+ .swipeToNextQuestion("Select date")
+ .assertText("2024-11-15")
+ }
+
@Test
fun fillingEntityRegistrationForm_createsEntityForFollowUpForms() {
testDependencies.server.addForm("one-question-entity-registration.xml")
diff --git a/entities/src/main/java/org/odk/collect/entities/javarosa/finalization/EntityFormFinalizationProcessor.java b/entities/src/main/java/org/odk/collect/entities/javarosa/finalization/EntityFormFinalizationProcessor.java
index ab175e09438..e3ce7ad1c16 100644
--- a/entities/src/main/java/org/odk/collect/entities/javarosa/finalization/EntityFormFinalizationProcessor.java
+++ b/entities/src/main/java/org/odk/collect/entities/javarosa/finalization/EntityFormFinalizationProcessor.java
@@ -52,7 +52,7 @@ private FormEntity createEntity(TreeElement entityElement, String dataset, List<
IAnswerData answerData = mainInstance.resolveReference(reference).getValue();
if (answerData != null) {
- return new Pair<>(saveTo.getSecond(), answerData.getDisplayText());
+ return new Pair<>(saveTo.getSecond(), answerData.uncast().getString());
} else {
return new Pair<>(saveTo.getSecond(), "");
}
diff --git a/entities/src/main/java/org/odk/collect/entities/javarosa/spec/EntityFormParser.java b/entities/src/main/java/org/odk/collect/entities/javarosa/spec/EntityFormParser.java
index cc78b6ab620..07193cf1567 100644
--- a/entities/src/main/java/org/odk/collect/entities/javarosa/spec/EntityFormParser.java
+++ b/entities/src/main/java/org/odk/collect/entities/javarosa/spec/EntityFormParser.java
@@ -32,7 +32,7 @@ public static String parseLabel(TreeElement entity) {
IAnswerData labelValue = labelElement.getValue();
if (labelValue != null) {
- return String.valueOf(labelValue.getValue());
+ return labelValue.uncast().getString();
} else {
return null;
}
diff --git a/test-forms/src/main/resources/forms/entities-with-dates-follow-up.xml b/test-forms/src/main/resources/forms/entities-with-dates-follow-up.xml
new file mode 100644
index 00000000000..7765cf3bbcc
--- /dev/null
+++ b/test-forms/src/main/resources/forms/entities-with-dates-follow-up.xml
@@ -0,0 +1,39 @@
+
+
+
+ Entities With Dates Follow Up
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/test-forms/src/main/resources/forms/entities-with-dates-registration.xml b/test-forms/src/main/resources/forms/entities-with-dates-registration.xml
new file mode 100644
index 00000000000..9b8c8d7c524
--- /dev/null
+++ b/test-forms/src/main/resources/forms/entities-with-dates-registration.xml
@@ -0,0 +1,44 @@
+
+
+
+ Entities With Dates Registration
+
+
+
+
+ Select date
+
+
+
+
+
+ 2024-11-15
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+