diff --git a/catalog/src/main/java/com/google/android/fhir/catalog/DemoQuestionnaireFragment.kt b/catalog/src/main/java/com/google/android/fhir/catalog/DemoQuestionnaireFragment.kt
index c672e79136..8ab4c5cae4 100644
--- a/catalog/src/main/java/com/google/android/fhir/catalog/DemoQuestionnaireFragment.kt
+++ b/catalog/src/main/java/com/google/android/fhir/catalog/DemoQuestionnaireFragment.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 Google LLC
+ * Copyright 2023-2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireViewItem.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireViewItem.kt
index d9025fd284..249f4fe575 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireViewItem.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireViewItem.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2023-2024 Google LLC
+ * Copyright 2023-2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -195,7 +195,11 @@ data class QuestionnaireViewItem(
* if question is answered else 'Not Answered'
*/
fun answerString(context: Context): String {
- if (!questionnaireResponseItem.hasAnswer()) return context.getString(R.string.not_answered)
+ if (!questionnaireResponseItem.hasAnswer()) {
+ return context.getString(R.string.not_answered)
+ } else if (questionnaireItem.type == Questionnaire.QuestionnaireItemType.ATTACHMENT) {
+ return context.getString(R.string.answered)
+ }
return questionnaireResponseItem.answer.joinToString { it.value.displayString(context) }
}
diff --git a/datacapture/src/main/res/values/strings.xml b/datacapture/src/main/res/values/strings.xml
index 9944225995..2aad66d9e2 100644
--- a/datacapture/src/main/res/values/strings.xml
+++ b/datacapture/src/main/res/values/strings.xml
@@ -38,7 +38,8 @@
- "Not Answered"
+ Not Answered
+ Answered
Help
diff --git a/datacapture/src/test/java/com/google/android/fhir/datacapture/views/QuestionnaireViewItemTest.kt b/datacapture/src/test/java/com/google/android/fhir/datacapture/views/QuestionnaireViewItemTest.kt
index f0696055fc..7f5e37a43b 100644
--- a/datacapture/src/test/java/com/google/android/fhir/datacapture/views/QuestionnaireViewItemTest.kt
+++ b/datacapture/src/test/java/com/google/android/fhir/datacapture/views/QuestionnaireViewItemTest.kt
@@ -1,5 +1,5 @@
/*
- * Copyright 2022-2024 Google LLC
+ * Copyright 2022-2025 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -1003,4 +1003,20 @@ class QuestionnaireViewItemTest {
)
.isTrue()
}
+
+ @Test
+ fun `answerString() should return answered with answered`() {
+ val questionnaireViewItem =
+ QuestionnaireViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(StringType("Attachment")),
+ ),
+ validationResult = Valid,
+ answersChangedCallback = { _, _, _, _ -> },
+ )
+ assertThat(questionnaireViewItem.answerString(context)).isEqualTo("Attachment")
+ }
}