From a41fc00fff08ef3cb90ea23ac8b607d264323762 Mon Sep 17 00:00:00 2001
From: Raazia Tariq <89384079+RaaziaTarique@users.noreply.github.com>
Date: Wed, 16 Mar 2022 16:50:17 +0100
Subject: [PATCH 01/20] Create blank.yml
---
.github/workflows/blank.yml | 9 +++++++++
1 file changed, 9 insertions(+)
create mode 100644 .github/workflows/blank.yml
diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml
new file mode 100644
index 0000000000..dbb9d606ae
--- /dev/null
+++ b/.github/workflows/blank.yml
@@ -0,0 +1,9 @@
+name: CI
+on: [push]
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: Setup upterm session
+ uses: lhotari/action-upterm@v1
From 7db66c7e95816557d214b8bbec147c87058f44d4 Mon Sep 17 00:00:00 2001
From: Raazia Tariq <89384079+RaaziaTarique@users.noreply.github.com>
Date: Wed, 16 Mar 2022 16:50:44 +0100
Subject: [PATCH 02/20] Delete blank.yml
---
.github/workflows/blank.yml | 9 ---------
1 file changed, 9 deletions(-)
delete mode 100644 .github/workflows/blank.yml
diff --git a/.github/workflows/blank.yml b/.github/workflows/blank.yml
deleted file mode 100644
index dbb9d606ae..0000000000
--- a/.github/workflows/blank.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-name: CI
-on: [push]
-jobs:
- build:
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: Setup upterm session
- uses: lhotari/action-upterm@v1
From 03baeb2f642d50bce9db5029d85f101713d7f6c9 Mon Sep 17 00:00:00 2001
From: Raazia Tariq <89384079+RaaziaTarique@users.noreply.github.com>
Date: Thu, 17 Mar 2022 09:00:50 +0100
Subject: [PATCH 03/20] - Testing commit
---
.../android/fhir/datacapture/validation/ConstraintValidator.kt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/ConstraintValidator.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/ConstraintValidator.kt
index fdcf2f6a8c..cb0dbbe48b 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/ConstraintValidator.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/ConstraintValidator.kt
@@ -20,7 +20,7 @@ import android.content.Context
import org.hl7.fhir.r4.model.Questionnaire
import org.hl7.fhir.r4.model.QuestionnaireResponse
-/** A interface for validating FHIR native supported constraints on a questionnaire response. */
+/** A interface for validating FHIR native supported constraints on a questionnaire res */
internal interface ConstraintValidator {
/**
* Validates the `answer`(s) in [questionnaireResponseItem] satisfy any constraints of the
From b078aefde9cc8a018da4d76c56e166a762ec7755 Mon Sep 17 00:00:00 2001
From: Raazia Tariq <89384079+RaaziaTarique@users.noreply.github.com>
Date: Thu, 17 Mar 2022 09:01:13 +0100
Subject: [PATCH 04/20] - Testing commit changes reverted
---
.../android/fhir/datacapture/validation/ConstraintValidator.kt | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/ConstraintValidator.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/ConstraintValidator.kt
index cb0dbbe48b..fdcf2f6a8c 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/ConstraintValidator.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/validation/ConstraintValidator.kt
@@ -20,7 +20,7 @@ import android.content.Context
import org.hl7.fhir.r4.model.Questionnaire
import org.hl7.fhir.r4.model.QuestionnaireResponse
-/** A interface for validating FHIR native supported constraints on a questionnaire res */
+/** A interface for validating FHIR native supported constraints on a questionnaire response. */
internal interface ConstraintValidator {
/**
* Validates the `answer`(s) in [questionnaireResponseItem] satisfy any constraints of the
From 749edbde2ad5f10e0365afe12b482e508cca3f01 Mon Sep 17 00:00:00 2001
From: Raazia Tariq <89384079+RaaziaTarique@users.noreply.github.com>
Date: Mon, 4 Apr 2022 17:05:31 +0200
Subject: [PATCH 05/20] - Changes for repeated groups
---
.../datacapture/QuestionnaireItemAdapter.kt | 78 +++--
.../QuestionnaireItemViewHolderType.kt | 3 +-
...nnaireItemAutoCompleteViewHolderFactory.kt | 2 -
.../QuestionnaireItemViewHolderFactory.kt | 3 +
datacapture/src/main/res/drawable/border.xml | 10 +
.../questionnaire_item_edit_text_view.xml | 31 ++
.../questionnaire_item_group_header_view.xml | 15 +
datacapture/src/main/res/values/colors.xml | 1 +
.../new-patient-registration-paginated.json | 320 +-----------------
9 files changed, 111 insertions(+), 352 deletions(-)
create mode 100644 datacapture/src/main/res/drawable/border.xml
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemAdapter.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemAdapter.kt
index c0c575e8cd..99c21a8fee 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemAdapter.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemAdapter.kt
@@ -38,6 +38,7 @@ import com.google.android.fhir.datacapture.views.QuestionnaireItemRadioGroupView
import com.google.android.fhir.datacapture.views.QuestionnaireItemSliderViewHolderFactory
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewHolder
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewItem
+import com.google.android.fhir.datacapture.views.RepeatViewHolderFactory
import org.hl7.fhir.r4.model.Questionnaire.QuestionnaireItemType
internal class QuestionnaireItemAdapter(
@@ -61,38 +62,46 @@ internal class QuestionnaireItemAdapter(
parent
)
- val viewHolderFactory =
- when (QuestionnaireItemViewHolderType.fromInt(viewType)) {
- QuestionnaireItemViewHolderType.GROUP -> QuestionnaireItemGroupViewHolderFactory
- QuestionnaireItemViewHolderType.BOOLEAN_TYPE_PICKER ->
- QuestionnaireItemBooleanTypePickerViewHolderFactory
- QuestionnaireItemViewHolderType.DATE_PICKER -> QuestionnaireItemDatePickerViewHolderFactory
- QuestionnaireItemViewHolderType.DATE_TIME_PICKER ->
- QuestionnaireItemDateTimePickerViewHolderFactory
- QuestionnaireItemViewHolderType.EDIT_TEXT_SINGLE_LINE ->
- QuestionnaireItemEditTextSingleLineViewHolderFactory
- QuestionnaireItemViewHolderType.EDIT_TEXT_MULTI_LINE ->
- QuestionnaireItemEditTextMultiLineViewHolderFactory
- QuestionnaireItemViewHolderType.EDIT_TEXT_INTEGER ->
- QuestionnaireItemEditTextIntegerViewHolderFactory
- QuestionnaireItemViewHolderType.EDIT_TEXT_DECIMAL ->
- QuestionnaireItemEditTextDecimalViewHolderFactory
- QuestionnaireItemViewHolderType.RADIO_GROUP -> QuestionnaireItemRadioGroupViewHolderFactory
- QuestionnaireItemViewHolderType.DROP_DOWN -> QuestionnaireItemDropDownViewHolderFactory
- QuestionnaireItemViewHolderType.DISPLAY -> QuestionnaireItemDisplayViewHolderFactory
- QuestionnaireItemViewHolderType.QUANTITY ->
- QuestionnaireItemEditTextQuantityViewHolderFactory
- QuestionnaireItemViewHolderType.CHECK_BOX_GROUP ->
- QuestionnaireItemCheckBoxGroupViewHolderFactory
- QuestionnaireItemViewHolderType.AUTO_COMPLETE ->
- QuestionnaireItemAutoCompleteViewHolderFactory
- QuestionnaireItemViewHolderType.DIALOG_SELECT ->
- QuestionnaireItemDialogSelectViewHolderFactory
- QuestionnaireItemViewHolderType.SLIDER -> QuestionnaireItemSliderViewHolderFactory
- QuestionnaireItemViewHolderType.PHONE_NUMBER ->
- QuestionnaireItemPhoneNumberViewHolderFactory
- }
- return viewHolderFactory.create(parent)
+ if (QuestionnaireItemViewHolderType.fromInt(viewType) == QuestionnaireItemViewHolderType.REPEAT
+ ) {
+ return RepeatViewHolderFactory.create(parent, viewType)
+ } else {
+ val viewHolderFactory =
+ when (QuestionnaireItemViewHolderType.fromInt(viewType)) {
+ QuestionnaireItemViewHolderType.GROUP -> QuestionnaireItemGroupViewHolderFactory
+ QuestionnaireItemViewHolderType.BOOLEAN_TYPE_PICKER ->
+ QuestionnaireItemBooleanTypePickerViewHolderFactory
+ QuestionnaireItemViewHolderType.DATE_PICKER ->
+ QuestionnaireItemDatePickerViewHolderFactory
+ QuestionnaireItemViewHolderType.DATE_TIME_PICKER ->
+ QuestionnaireItemDateTimePickerViewHolderFactory
+ QuestionnaireItemViewHolderType.EDIT_TEXT_SINGLE_LINE ->
+ QuestionnaireItemEditTextSingleLineViewHolderFactory
+ QuestionnaireItemViewHolderType.EDIT_TEXT_MULTI_LINE ->
+ QuestionnaireItemEditTextMultiLineViewHolderFactory
+ QuestionnaireItemViewHolderType.EDIT_TEXT_INTEGER ->
+ QuestionnaireItemEditTextIntegerViewHolderFactory
+ QuestionnaireItemViewHolderType.EDIT_TEXT_DECIMAL ->
+ QuestionnaireItemEditTextDecimalViewHolderFactory
+ QuestionnaireItemViewHolderType.RADIO_GROUP ->
+ QuestionnaireItemRadioGroupViewHolderFactory
+ QuestionnaireItemViewHolderType.DROP_DOWN -> QuestionnaireItemDropDownViewHolderFactory
+ QuestionnaireItemViewHolderType.DISPLAY -> QuestionnaireItemDisplayViewHolderFactory
+ QuestionnaireItemViewHolderType.QUANTITY ->
+ QuestionnaireItemEditTextQuantityViewHolderFactory
+ QuestionnaireItemViewHolderType.CHECK_BOX_GROUP ->
+ QuestionnaireItemCheckBoxGroupViewHolderFactory
+ QuestionnaireItemViewHolderType.AUTO_COMPLETE ->
+ QuestionnaireItemAutoCompleteViewHolderFactory
+ QuestionnaireItemViewHolderType.DIALOG_SELECT ->
+ QuestionnaireItemDialogSelectViewHolderFactory
+ QuestionnaireItemViewHolderType.SLIDER -> QuestionnaireItemSliderViewHolderFactory
+ QuestionnaireItemViewHolderType.PHONE_NUMBER ->
+ QuestionnaireItemPhoneNumberViewHolderFactory
+ else -> throw NotImplementedError("Question type $viewType not supported.")
+ }
+ return viewHolderFactory.create(parent)
+ }
}
override fun onBindViewHolder(holder: QuestionnaireItemViewHolder, position: Int) {
@@ -114,12 +123,17 @@ internal class QuestionnaireItemAdapter(
val questionnaireItem = questionnaireItemViewItem.questionnaireItem
// For custom widgets, generate an int value that's greater than any int assigned to the
// canonical FHIR widgets
+
questionnaireItemViewHolderMatchers.forEachIndexed { index, matcher ->
if (matcher.matches(questionnaireItem)) {
return index + QuestionnaireItemViewHolderType.values().size
}
}
+ if (questionnaireItem.repeats) {
+ return QuestionnaireItemViewHolderType.REPEAT.value
+ }
+
return when (val type = questionnaireItem.type) {
QuestionnaireItemType.GROUP -> QuestionnaireItemViewHolderType.GROUP
QuestionnaireItemType.BOOLEAN -> QuestionnaireItemViewHolderType.BOOLEAN_TYPE_PICKER
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemViewHolderType.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemViewHolderType.kt
index 81d774382e..f8b8bea9cd 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemViewHolderType.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemViewHolderType.kt
@@ -43,7 +43,8 @@ internal enum class QuestionnaireItemViewHolderType(val value: Int) {
AUTO_COMPLETE(13),
DIALOG_SELECT(14),
SLIDER(15),
- PHONE_NUMBER(16);
+ PHONE_NUMBER(16),
+ REPEAT(17);
companion object {
private val VALUES = values()
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactory.kt
index 5dc5118686..50cff2653f 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactory.kt
@@ -62,8 +62,6 @@ internal object QuestionnaireItemAutoCompleteViewHolderFactory :
private lateinit var chipContainer: FlexboxLayout
private lateinit var editText: TextInputEditText
- private val canHaveMultipleAnswers
- get() = questionnaireItemViewItem.questionnaireItem.repeats
override lateinit var questionnaireItemViewItem: QuestionnaireItemViewItem
override fun init(itemView: View) {
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemViewHolderFactory.kt
index 09c5e05d41..c5ed999e7a 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemViewHolderFactory.kt
@@ -104,6 +104,9 @@ interface QuestionnaireItemViewHolderDelegate {
displayValidationResult(getValidationResult(context))
}
+ val canHaveMultipleAnswers
+ get() = questionnaireItemViewItem.questionnaireItem.repeats
+
/** Run the [QuestionnaireResponseItemValidator.validate] function. */
fun getValidationResult(context: Context): ValidationResult {
return QuestionnaireResponseItemValidator.validate(
diff --git a/datacapture/src/main/res/drawable/border.xml b/datacapture/src/main/res/drawable/border.xml
new file mode 100644
index 0000000000..8b92e8109d
--- /dev/null
+++ b/datacapture/src/main/res/drawable/border.xml
@@ -0,0 +1,10 @@
+
+
+
+
+
+
+
diff --git a/datacapture/src/main/res/layout/questionnaire_item_edit_text_view.xml b/datacapture/src/main/res/layout/questionnaire_item_edit_text_view.xml
index fa208f15ed..8068e6644a 100644
--- a/datacapture/src/main/res/layout/questionnaire_item_edit_text_view.xml
+++ b/datacapture/src/main/res/layout/questionnaire_item_edit_text_view.xml
@@ -29,6 +29,21 @@
android:orientation="horizontal"
>
+
+
+
+
diff --git a/datacapture/src/main/res/layout/questionnaire_item_group_header_view.xml b/datacapture/src/main/res/layout/questionnaire_item_group_header_view.xml
index f85cd6598d..7dd7b1d5a6 100644
--- a/datacapture/src/main/res/layout/questionnaire_item_group_header_view.xml
+++ b/datacapture/src/main/res/layout/questionnaire_item_group_header_view.xml
@@ -23,6 +23,21 @@
android:orientation="horizontal"
>
+
+
#00000000
#FFFFFFFF
#FF000000
+ #175adf
#9A000000
#9AFFFFFF
#99000000
diff --git a/demo/src/main/assets/new-patient-registration-paginated.json b/demo/src/main/assets/new-patient-registration-paginated.json
index bab5ce498e..84bb0a14a9 100644
--- a/demo/src/main/assets/new-patient-registration-paginated.json
+++ b/demo/src/main/assets/new-patient-registration-paginated.json
@@ -22,202 +22,7 @@
"linkId": "PR",
"type": "group",
"text": "Client info",
- "_text": {
- "extension": [
- {
- "extension": [
- {
- "url": "lang",
- "valueCode": "sw"
- },
- {
- "url": "content",
- "valueString": "Maelezo ya mteja"
- }
- ],
- "url": "http://hl7.org/fhir/StructureDefinition/translation"
- }
- ]
- },
"item": [
- {
- "linkId": "PR-name",
- "type": "group",
- "definition": "http://hl7.org/fhir/StructureDefinition/Patient#Patient.name",
- "item": [
- {
- "extension": [
- {
- "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
- "valueExpression": {
- "language": "text/fhirpath",
- "expression": "Patient.name.given",
- "name": "patientName"
- }
- }
- ],
- "linkId": "PR-name-text",
- "definition": "http://hl7.org/fhir/StructureDefinition/Patient#Patient.name.given",
- "type": "string",
- "required": true,
- "text": "First Name",
- "_text": {
- "extension": [
- {
- "extension": [
- {
- "url": "lang",
- "valueCode": "sw"
- },
- {
- "url": "content",
- "valueString": "Jina la kwanza"
- }
- ],
- "url": "http://hl7.org/fhir/StructureDefinition/translation"
- }
- ]
- }
- },
- {
- "extension": [
- {
- "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
- "valueExpression": {
- "language": "text/fhirpath",
- "expression": "Patient.name.family",
- "name": "patientFamily"
- }
- }
- ],
- "linkId": "PR-name-family",
- "definition": "http://hl7.org/fhir/StructureDefinition/datatypes#HumanName.family",
- "type": "string",
- "required": true,
- "text": "Family Name",
- "_text": {
- "extension": [
- {
- "extension": [
- {
- "url": "lang",
- "valueCode": "sw"
- },
- {
- "url": "content",
- "valueString": "Jina la ukoo"
- }
- ],
- "url": "http://hl7.org/fhir/StructureDefinition/translation"
- }
- ]
- }
- }
- ]
- },
- {
-
- "extension": [
- {
- "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
- "valueExpression": {
- "language": "text/fhirpath",
- "expression": "Patient.birthDate",
- "name": "patientBirthDate"
- }
- }
- ],
- "linkId": "patient-0-birth-date",
- "definition": "http://hl7.org/fhir/StructureDefinition/Patient#Patient.birthDate",
- "type": "date",
- "required": true,
- "text": "Date of Birth",
- "_text": {
- "extension": [
- {
- "extension": [
- {
- "url": "lang",
- "valueCode": "sw"
- },
- {
- "url": "content",
- "valueString": "Tarehe ya kuzaliwa"
- }
- ],
- "url": "http://hl7.org/fhir/StructureDefinition/translation"
- }
- ]
- }
- },
- {
- "linkId": "patient-0-gender",
- "definition": "http://hl7.org/fhir/StructureDefinition/Patient#Patient.gender",
- "type": "choice",
- "text": "Gender",
- "extension": [
- {
- "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
- "valueExpression": {
- "system": "http://hl7.org/fhir/administrative-gender",
- "language": "text/fhirpath",
- "expression": "Patient.gender",
- "name": "patientGender"
- }
- },
- {
- "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-itemControl",
- "valueCodeableConcept": {
- "coding": [
- {
- "system": "http://hl7.org/fhir/questionnaire-item-control",
- "code": "radio-button",
- "display": "Radio Button"
- }
- ]
- }
- },
- {
- "url": "http://hl7.org/fhir/StructureDefinition/questionnaire-choiceOrientation",
- "valueCode": "horizontal"
- }
- ],
- "initial": [
- {
- "valueCoding": {
- "system": "http://hl7.org/fhir/administrative-gender",
- "code": "female",
- "display": "Female"
- }
- }
- ],
- "answerOption": [
- {
- "valueCoding": {
- "system": "http://hl7.org/fhir/administrative-gender",
- "code": "female",
- "display": "Female",
- "designation": [
- {
- "language": "sw",
- "value": "Mwanamke"
- }]
- }
- },
- {
- "valueCoding": {
- "system": "http://hl7.org/fhir/administrative-gender",
- "code": "male",
- "display": "Male",
- "designation": [
- {
- "language": "sw",
- "value": "Mwanaume"
- }]
- }
- }
- ]
- },
{
"linkId": "PR-telecom",
"type": "group",
@@ -241,113 +46,11 @@
]
},
{
- "extension": [
- {
- "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
- "valueExpression": {
- "language": "text/fhirpath",
- "expression": "Patient.telecom.value",
- "name": "patientTelecom"
- }
- }
- ],
"linkId": "PR-telecom-value",
"definition": "http://hl7.org/fhir/StructureDefinition/Patient#Patient.telecom.value",
"type": "string",
- "required": true,
- "text": "Phone Number",
- "_text": {
- "extension": [
- {
- "extension": [
- {
- "url": "lang",
- "valueCode": "sw"
- },
- {
- "url": "content",
- "valueString": "Nambari ya simu"
- }
- ],
- "url": "http://hl7.org/fhir/StructureDefinition/translation"
- }
- ]
- }
- }
- ]
- },
- {
- "linkId": "PR-address",
- "type": "group",
- "definition": "http://hl7.org/fhir/StructureDefinition/Patient#Patient.address",
- "item": [
- {
- "extension": [
- {
- "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
- "valueExpression": {
- "language": "text/fhirpath",
- "expression": "Patient.address.city",
- "name": "patientCity"
- }
- }
- ],
- "linkId": "PR-address-city",
- "definition": "http://hl7.org/fhir/StructureDefinition/Patient#Patient.address.city",
- "type": "string",
- "required": true,
- "text": "City",
- "_text": {
- "extension": [
- {
- "extension": [
- {
- "url": "lang",
- "valueCode": "sw"
- },
- {
- "url": "content",
- "valueString": "Mji"
- }
- ],
- "url": "http://hl7.org/fhir/StructureDefinition/translation"
- }
- ]
- }
- },
- {
- "extension": [
- {
- "url": "http://hl7.org/fhir/uv/sdc/StructureDefinition/sdc-questionnaire-initialExpression",
- "valueExpression": {
- "language": "text/fhirpath",
- "expression": "Patient.address.country",
- "name": "patientCity"
- }
- }
- ],
- "linkId": "PR-address-country",
- "definition": "http://hl7.org/fhir/StructureDefinition/Patient#Patient.address.country",
- "type": "string",
- "required": true,
- "text": "Country",
- "_text": {
- "extension": [
- {
- "extension": [
- {
- "url": "lang",
- "valueCode": "sw"
- },
- {
- "url": "content",
- "valueString": "Nchi"
- }
- ],
- "url": "http://hl7.org/fhir/StructureDefinition/translation"
- }
- ]
- }
+ "repeats": true,
+ "text": "Phone Number"
}
]
},
@@ -365,24 +68,7 @@
"linkId": "PR-active",
"definition": "http://hl7.org/fhir/StructureDefinition/Patient#Patient.active",
"type": "boolean",
- "text": "Is Active?",
- "_text": {
- "extension": [
- {
- "extension": [
- {
- "url": "lang",
- "valueCode": "sw"
- },
- {
- "url": "content",
- "valueString": "Inatumika?"
- }
- ],
- "url": "http://hl7.org/fhir/StructureDefinition/translation"
- }
- ]
- }
+ "text": "Is Active?"
}
]
}
From 7dffcfbefd94dd0a4125c61b5ce976e6372015f0 Mon Sep 17 00:00:00 2001
From: Raazia Tariq <89384079+RaaziaTarique@users.noreply.github.com>
Date: Mon, 4 Apr 2022 17:47:07 +0200
Subject: [PATCH 06/20] - Changes for repeated groups
---
.../fhir/catalog/CustomNumberPickerFactory.kt | 2 +-
...NumberViewHolderFactoryInstrumentedTest.kt | 137 +++++-----
...ReaderViewHolderFactoryInstrumentedTest.kt | 47 ++--
...mpleteViewHolderFactoryInstrumentedTest.kt | 256 +++++++++---------
...PickerViewHolderFactoryInstrumentedTest.kt | 156 ++++++-----
...xGroupViewHolderFactoryInstrumentedTest.kt | 219 ++++++++-------
...PickerViewHolderFactoryInstrumentedTest.kt | 169 ++++++------
...PickerViewHolderFactoryInstrumentedTest.kt | 107 ++++----
...isplayViewHolderFactoryInstrumentedTest.kt | 46 ++--
...opDownViewHolderFactoryInstrumentedTest.kt | 162 ++++++-----
...ecimalViewHolderFactoryInstrumentedTest.kt | 166 ++++++------
...ntegerViewHolderFactoryInstrumentedTest.kt | 166 ++++++------
...tiLineViewHolderFactoryInstrumentedTest.kt | 150 +++++-----
...antityViewHolderFactoryInstrumentedTest.kt | 124 +++++----
...leLineViewHolderFactoryInstrumentedTest.kt | 146 +++++-----
...mGroupViewHolderFactoryInstrumentedTest.kt | 88 +++---
...ultiSelectHolderFactoryInstrumentedTest.kt | 114 ++++----
...oGroupViewHolderFactoryInstrumentedTest.kt | 224 +++++++--------
...SliderViewHolderFactoryInstrumentedTest.kt | 165 +++++------
.../datacapture/QuestionnaireItemAdapter.kt | 2 +-
...naireItemBarCodeReaderViewHolderFactory.kt | 2 +-
...nnaireItemAutoCompleteViewHolderFactory.kt | 2 +-
...eItemBooleanTypePickerViewHolderFactory.kt | 2 +-
...naireItemCheckBoxGroupViewHolderFactory.kt | 2 +-
...ionnaireItemDatePickerViewHolderFactory.kt | 2 +-
...aireItemDateTimePickerViewHolderFactory.kt | 2 +-
...nnaireItemDialogSelectViewHolderFactory.kt | 2 +-
...estionnaireItemDisplayViewHolderFactory.kt | 2 +-
...stionnaireItemDropDownViewHolderFactory.kt | 2 +-
...stionnaireItemEditTextViewHolderFactory.kt | 10 +-
...QuestionnaireItemGroupViewHolderFactory.kt | 2 +-
...ionnaireItemRadioGroupViewHolderFactory.kt | 2 +-
...uestionnaireItemSliderViewHolderFactory.kt | 2 +-
.../QuestionnaireItemViewHolderFactory.kt | 6 +-
.../views/RepeatViewHolderFactory.kt | 66 +++++
35 files changed, 1498 insertions(+), 1254 deletions(-)
create mode 100644 datacapture/src/main/java/com/google/android/fhir/datacapture/views/RepeatViewHolderFactory.kt
diff --git a/catalog/src/main/java/com/google/android/fhir/catalog/CustomNumberPickerFactory.kt b/catalog/src/main/java/com/google/android/fhir/catalog/CustomNumberPickerFactory.kt
index 07ffe999ac..4f61abbddf 100644
--- a/catalog/src/main/java/com/google/android/fhir/catalog/CustomNumberPickerFactory.kt
+++ b/catalog/src/main/java/com/google/android/fhir/catalog/CustomNumberPickerFactory.kt
@@ -38,7 +38,7 @@ object CustomNumberPickerFactory :
numberPicker = itemView.findViewById(R.id.number_picker)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
numberPicker.minValue = 1
numberPicker.maxValue = 100
}
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest.kt
index d9e0b25c22..1e6375d160 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest.kt
@@ -68,10 +68,11 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -82,10 +83,11 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -95,10 +97,11 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -108,15 +111,16 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("+12345678910")
- }
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("+12345678910")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -133,21 +137,23 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("+12345678910")
- }
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("+12345678910")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -169,7 +175,7 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder
.itemView
.findViewById(R.id.text_input_edit_text)
@@ -189,7 +195,7 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -198,21 +204,22 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello there")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- ) {}
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello there")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -223,16 +230,17 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { maxLength = 10 },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("+1234567891011")
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { maxLength = 10 },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("+1234567891011")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -243,10 +251,11 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest.kt
index c0bc8d351c..30962706dd 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest.kt
@@ -23,6 +23,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewHolder
import com.google.android.fhir.datacapture.views.QuestionnaireItemViewItem
@@ -55,10 +56,11 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix).isVisible).isTrue()
@@ -70,10 +72,11 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix).isVisible).isFalse()
@@ -83,10 +86,11 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question).text.toString())
@@ -98,15 +102,16 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Barcode Result")
- }
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Barcode Result")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.textInputEditText).text.toString())
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest.kt
index 96e1fc763d..b8ccc77f95 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest.kt
@@ -26,6 +26,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.fhir.datacapture.displayString
import com.google.android.material.textfield.TextInputLayout
@@ -59,10 +60,11 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -74,10 +76,11 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -88,10 +91,11 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetQuestionText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -102,26 +106,27 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHaveSingleAnswerChip() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = false
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code"))
- )
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
- .apply {
- singleAnswerOrNull =
- (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
- })
- }
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = false
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code"))
+ )
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {}
+ .apply {
+ singleAnswerOrNull =
+ (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
+ })
+ },
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.flexboxLayout).childCount)
@@ -132,38 +137,39 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHaveTwoAnswerChipWithExternalValueSet() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- answerValueSet = "http://answwer-value-set-url"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent(),
- resolveAnswerValueSet = {
- if (it == "http://answwer-value-set-url") {
- listOf(
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code")),
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
- )
- } else {
- emptyList()
- }
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ answerValueSet = "http://answwer-value-set-url"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent(),
+ resolveAnswerValueSet = {
+ if (it == "http://answwer-value-set-url") {
+ listOf(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code")),
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
+ )
+ } else {
+ emptyList()
}
- ) {}
- .apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
- }
- )
-
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "Test2 Code" }.valueCoding
- }
- )
}
+ ) {}
+ .apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
+ }
+ )
+
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "Test2 Code" }.valueCoding
+ }
+ )
+ },
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.flexboxLayout).childCount)
@@ -174,31 +180,32 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHaveSingleAnswerChipWithContainedAnswerValueSet() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = false
- answerValueSet = "#ContainedValueSet"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent(),
- resolveAnswerValueSet = {
- if (it == "#ContainedValueSet") {
- listOf(
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code")),
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
- )
- } else {
- emptyList()
- }
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = false
+ answerValueSet = "#ContainedValueSet"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent(),
+ resolveAnswerValueSet = {
+ if (it == "#ContainedValueSet") {
+ listOf(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code")),
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
+ )
+ } else {
+ emptyList()
}
- ) {}
- .apply {
- singleAnswerOrNull =
- (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
- })
}
+ ) {}
+ .apply {
+ singleAnswerOrNull =
+ (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
+ })
+ },
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.flexboxLayout).childCount)
@@ -209,10 +216,11 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -223,23 +231,24 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- required = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ required = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -250,23 +259,24 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- readOnly = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "readOnly" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
- .apply {
- singleAnswerOrNull =
- (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "readOnly" }.valueCoding
- })
- }
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ readOnly = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "readOnly" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {}
+ .apply {
+ singleAnswerOrNull =
+ (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "readOnly" }.valueCoding
+ })
+ },
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.flexboxLayout)[0].isEnabled)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest.kt
index 302891661c..94e34b96fa 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest.kt
@@ -25,6 +25,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.common.truth.Truth.assertThat
import org.hl7.fhir.r4.model.BooleanType
@@ -47,10 +48,11 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -61,10 +63,11 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -74,13 +77,14 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@Test
fun bind_shouldSetQuestionText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- text = "Question?"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ text = "Question?"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -95,7 +99,7 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.isEmpty())
}
@@ -104,10 +108,11 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun noAnswer_shouldNotCheckYesOrNoRadioButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -129,7 +134,7 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
}
)
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
assertThat(
questionnaireItemViewItem.questionnaireResponseItem.answer.single().valueBooleanType.value
@@ -141,15 +146,16 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun answerTrue_shouldCheckYesRadioButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = BooleanType(true)
- }
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = BooleanType(true)
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -171,7 +177,7 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
}
)
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
assertThat(
questionnaireItemViewItem.questionnaireResponseItem.answer.single().valueBooleanType.value
@@ -183,15 +189,16 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun answerFalse_shouldCheckNoRadioButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = BooleanType(false)
- }
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = BooleanType(false)
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -208,7 +215,7 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.yes_radio_button).performClick()
assertThat(
@@ -225,7 +232,7 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.no_radio_button).performClick()
assertThat(
@@ -248,7 +255,7 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
)
}
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.yes_radio_button).performClick()
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.isEmpty())
@@ -268,7 +275,7 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
)
}
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.yes_radio_button).performClick()
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -291,7 +298,7 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
)
}
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.no_radio_button).performClick()
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.isEmpty())
@@ -311,7 +318,7 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
)
}
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.no_radio_button).performClick()
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -324,10 +331,11 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text)
@@ -338,16 +346,17 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = BooleanType(true)
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = BooleanType(true)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text.isEmpty())
@@ -358,19 +367,20 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- text = "Question?"
- readOnly = true
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = BooleanType(true)
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ text = "Question?"
+ readOnly = true
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = BooleanType(true)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest.kt
index 308c862862..2773190a7e 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest.kt
@@ -29,6 +29,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import com.google.android.fhir.datacapture.ChoiceOrientationTypes
import com.google.android.fhir.datacapture.EXTENSION_CHOICE_ORIENTATION_URL
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.common.truth.Truth.assertThat
import org.hl7.fhir.r4.model.CodeType
@@ -52,13 +53,14 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- prefix = "Prefix?"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ prefix = "Prefix?"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -69,13 +71,14 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- prefix = ""
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ prefix = ""
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -85,13 +88,14 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun bind_shouldSetQuestionText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- text = "Question?"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ text = "Question?"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -119,10 +123,11 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
)
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- questionnaire,
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ questionnaire,
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
@@ -154,10 +159,11 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
)
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- questionnaire,
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ questionnaire,
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
@@ -171,17 +177,18 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun bind_noAnswer_shouldLeaveCheckButtonsUnchecked() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
@@ -193,31 +200,32 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_answer_shouldSetCheckBoxButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value =
- Coding().apply {
- code = "code 1"
- display = "Coding 1"
- }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value =
- Coding().apply {
- code = "code 1"
- display = "Coding 1"
- }
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value =
+ Coding().apply {
+ code = "code 1"
+ display = "Coding 1"
+ }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value =
+ Coding().apply {
+ code = "code 1"
+ display = "Coding 1"
+ }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
val checkBox = checkBoxGroup.getChildAt(1) as CheckBox
@@ -244,7 +252,7 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
},
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
val checkBox = checkBoxGroup.getChildAt(1) as CheckBox
checkBox.performClick()
@@ -290,7 +298,7 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
}
}
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
val checkBox = checkBoxGroup.getChildAt(1) as CheckBox
checkBox.performClick()
@@ -303,13 +311,14 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- required = true
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ required = true
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text)
@@ -320,24 +329,25 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- required = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ required = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text.isEmpty())
@@ -347,18 +357,19 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- readOnly = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ readOnly = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest.kt
index eda47796f4..c57e1c6451 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest.kt
@@ -23,6 +23,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.material.textfield.TextInputLayout
import com.google.common.truth.Truth.assertThat
@@ -54,10 +55,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -68,10 +70,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -81,10 +84,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextInputLayoutHint() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -95,10 +99,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetEmptyDateInput() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -112,14 +117,15 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
fun shouldSetDateInput_localeUs() {
setLocale(Locale.US)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2020, 10, 19))
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2020, 10, 19))
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
viewHolder.itemView.findViewById(R.id.text_input_edit_text).text.toString()
@@ -132,14 +138,15 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
fun shouldSetDateInput_localeJp() {
setLocale(Locale.JAPAN)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2020, 10, 19))
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2020, 10, 19))
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
viewHolder.itemView.findViewById(R.id.text_input_edit_text).text.toString()
@@ -152,14 +159,15 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
fun shouldSetDateInput_localeEn() {
setLocale(Locale.ENGLISH)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2020, 10, 19))
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2020, 10, 19))
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
viewHolder.itemView.findViewById(R.id.text_input_edit_text).text.toString()
@@ -171,25 +179,26 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- required = true
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(DateType(2020, 0, 1))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(DateType(2025, 0, 1))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2026, 0, 1))
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ required = true
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(DateType(2020, 0, 1))
}
- ) {}
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(DateType(2025, 0, 1))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2026, 0, 1))
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -200,24 +209,25 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(DateType(2020, 0, 1))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(DateType(2025, 0, 1))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2023, 0, 1))
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(DateType(2020, 0, 1))
+ }
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(DateType(2025, 0, 1))
}
- ) {}
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2023, 0, 1))
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -228,10 +238,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_edit_text).isEnabled)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest.kt
index 101c735d7f..251b5031fd 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest.kt
@@ -24,6 +24,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.material.textfield.TextInputLayout
import com.google.common.truth.Truth.assertThat
@@ -56,10 +57,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -70,10 +72,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -83,10 +86,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextInputLayoutHint() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -97,10 +101,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetEmptyDateTimeInput() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -117,14 +122,15 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetDateTimeInput() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateTimeType(Date(2020 - 1900, 1, 5, 1, 30, 0)))
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateTimeType(Date(2020 - 1900, 1, 5, 1, 30, 0)))
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -141,10 +147,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.date_input_layout).error)
@@ -157,24 +164,25 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue((DateTimeType(Date(2020 - 1900, 1, 5, 1, 30, 0))))
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue((DateTimeType(Date(2020 - 1900, 1, 5, 1, 30, 0))))
+ }
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue((DateTimeType(Date(2025 - 1900, 1, 5, 1, 30, 0))))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = (DateTimeType(Date(2023 - 1900, 1, 5, 1, 30, 0)))
}
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue((DateTimeType(Date(2025 - 1900, 1, 5, 1, 30, 0))))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = (DateTimeType(Date(2023 - 1900, 1, 5, 1, 30, 0)))
- }
- )
- ) {}
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.date_input_layout).error)
@@ -187,10 +195,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.date_input_edit_text).isEnabled)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest.kt
index de7f2ea0cd..0fa0f3a505 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest.kt
@@ -23,6 +23,7 @@ import androidx.appcompat.view.ContextThemeWrapper
import androidx.core.view.isVisible
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.common.truth.Truth.assertThat
import org.hl7.fhir.r4.model.Questionnaire
@@ -51,10 +52,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -65,10 +67,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -78,10 +81,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.display_text_view).text.toString())
@@ -91,10 +95,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewVisible() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.display_text_view).visibility)
@@ -104,10 +109,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewGone() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.display_text_view).visibility)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest.kt
index f3cd105a09..8f7528cbb8 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest.kt
@@ -24,6 +24,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.fhir.datacapture.displayString
import com.google.android.material.textfield.TextInputLayout
@@ -59,10 +60,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -74,10 +76,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -88,10 +91,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetTextInputHint() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -106,10 +110,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
value = Coding().setCode("test-code").setDisplay("Test Code")
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -131,10 +136,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
value = Coding().apply { setCode("test-code") }
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -160,10 +166,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
}
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -184,25 +191,26 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
}
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- answerValueSet = "http://coding-value-set-url"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.value
- }
- )
- },
- resolveAnswerValueSet = {
- if (it == "http://coding-value-set-url") {
- listOf(answerOption)
- } else {
- emptyList()
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ answerValueSet = "http://coding-value-set-url"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.value
}
+ )
+ },
+ resolveAnswerValueSet = {
+ if (it == "http://coding-value-set-url") {
+ listOf(answerOption)
+ } else {
+ emptyList()
}
- ) {}
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -219,16 +227,17 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
assertFailsWith {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.value
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.value
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
}
}
@@ -237,10 +246,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -251,22 +261,23 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- required = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ required = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -277,10 +288,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).isEnabled)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest.kt
index c9ff325498..c3a899d574 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest.kt
@@ -23,6 +23,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
@@ -55,10 +56,11 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -69,10 +71,11 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -82,10 +85,11 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -96,16 +100,17 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = DecimalType("1.1")
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = DecimalType("1.1")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -122,22 +127,24 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = DecimalType("1.1")
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = DecimalType("1.1")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -158,7 +165,7 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("1.1")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -174,7 +181,7 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -184,25 +191,26 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(DecimalType("2.2"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(DecimalType("4.4"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = DecimalType("3.3")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(DecimalType("2.2"))
}
- ) {}
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(DecimalType("4.4"))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = DecimalType("3.3")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -213,25 +221,26 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(DecimalType("2.1"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(DecimalType("4.2"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = DecimalType("1.1")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(DecimalType("2.1"))
}
- ) {}
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(DecimalType("4.2"))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = DecimalType("1.1")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -242,10 +251,11 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest.kt
index 8771c3b22d..e08e1c8a5f 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest.kt
@@ -23,6 +23,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
@@ -54,10 +55,11 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -68,10 +70,11 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -81,10 +84,11 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -95,16 +99,17 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType(5)
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType(5)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -121,22 +126,24 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType(5)
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType(5)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -157,7 +164,7 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("10")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -173,7 +180,7 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -183,25 +190,26 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(IntegerType("2"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(IntegerType("4"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType("3")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(IntegerType("2"))
}
- ) {}
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(IntegerType("4"))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType("3")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -212,25 +220,26 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(IntegerType("2"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(IntegerType("4"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType("1")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(IntegerType("2"))
}
- ) {}
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(IntegerType("4"))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType("1")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -241,10 +250,11 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest.kt
index 44424c4366..a5187110a0 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest.kt
@@ -23,6 +23,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
@@ -55,10 +56,11 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -69,10 +71,11 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -82,10 +85,11 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -96,16 +100,17 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Answer")
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Answer")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -122,22 +127,24 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Answer")
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Answer")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -159,7 +166,7 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("Answer")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -176,7 +183,7 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -186,21 +193,22 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello there")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- ) {}
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello there")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -211,21 +219,22 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- ) {}
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -236,10 +245,11 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest.kt
index b633ad5565..5318a6c5f2 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest.kt
@@ -23,6 +23,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
@@ -56,10 +57,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -70,10 +72,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -84,10 +87,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -98,16 +102,17 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Quantity().apply { value = BigDecimal("5") }
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Quantity().apply { value = BigDecimal("5") }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -124,22 +129,24 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Quantity().apply { value = BigDecimal("5") }
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Quantity().apply { value = BigDecimal("5") }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -160,7 +167,7 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("10")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -176,7 +183,7 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("10.1")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -192,7 +199,7 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -202,10 +209,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -216,16 +224,17 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Quantity(22.5)
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Quantity(22.5)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -236,10 +245,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest.kt
index c7bd80b2f2..9ad3e2ab38 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest.kt
@@ -23,6 +23,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.material.textfield.TextInputEditText
import com.google.android.material.textfield.TextInputLayout
@@ -55,10 +56,11 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -69,10 +71,11 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -82,10 +85,11 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -96,15 +100,16 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Answer")
- }
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Answer")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -121,21 +126,23 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Answer")
- }
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Answer")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -157,7 +164,7 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("Answer")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -174,7 +181,7 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -184,21 +191,22 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello there")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- ) {}
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello there")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -209,21 +217,22 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- ) {}
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -234,10 +243,11 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactoryInstrumentedTest.kt
index 11b93d3b50..e23dac196a 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactoryInstrumentedTest.kt
@@ -24,6 +24,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.common.truth.Truth.assertThat
import org.hl7.fhir.r4.model.Coding
@@ -53,10 +54,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -67,10 +69,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -80,10 +83,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Group header" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Group header" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.group_header).text.toString())
@@ -93,10 +97,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewVisible() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Group header" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Group header" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.group_header).visibility)
@@ -106,10 +111,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewGone() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.group_header).visibility)
@@ -120,10 +126,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.group_header).error)
@@ -134,22 +141,23 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- required = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ required = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.group_header).error).isNull()
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest.kt
index 80c7ca464b..4ca66cff46 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest.kt
@@ -22,6 +22,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.rules.activityScenarioRule
import androidx.test.ext.junit.runners.AndroidJUnit4
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.fhir.datacapture.TestActivity
import com.google.android.material.textfield.TextInputLayout
@@ -40,14 +41,15 @@ class QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() = withViewHolder { holder ->
holder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- prefix = "Prefix?"
- linkId = "1"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ prefix = "Prefix?"
+ linkId = "1"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(holder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -58,14 +60,15 @@ class QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() = withViewHolder { holder ->
holder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- prefix = ""
- linkId = "1"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ prefix = ""
+ linkId = "1"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(holder.itemView.findViewById(R.id.prefix_text_view).isVisible).isFalse()
@@ -74,7 +77,8 @@ class QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest {
@Test
fun emptyResponseOptions_showNoneSelected() = withViewHolder { holder ->
holder.bind(
- QuestionnaireItemViewItem(answerOptions("Coding 1", "Coding 2"), responseOptions()) {}
+ QuestionnaireItemViewItem(answerOptions("Coding 1", "Coding 2"), responseOptions()) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(holder.itemView.findViewById(R.id.multi_select_summary).text.toString())
.isEqualTo("")
@@ -83,10 +87,11 @@ class QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest {
@Test
fun selectedResponseOptions_showSelectedOptions() = withViewHolder { holder ->
holder.bind(
- QuestionnaireItemViewItem(
- answerOptions("Coding 1", "Coding 2", "Coding 3"),
- responseOptions("Coding 1", "Coding 3")
- ) {}
+ QuestionnaireItemViewItem(
+ answerOptions("Coding 1", "Coding 2", "Coding 3"),
+ responseOptions("Coding 1", "Coding 3")
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(holder.itemView.findViewById(R.id.multi_select_summary).text.toString())
.isEqualTo("Coding 1, Coding 3")
@@ -96,13 +101,14 @@ class QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() = withViewHolder { viewHolder ->
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- linkId = "1"
- required = true
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ linkId = "1"
+ required = true
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -115,24 +121,25 @@ class QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() = withViewHolder { viewHolder ->
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- linkId = "1"
- required = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ linkId = "1"
+ required = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -144,13 +151,14 @@ class QuestionnaireItemMultiSelectHolderFactoryInstrumentedTest {
@Test
fun bind_readOnly_shouldDisableView() = withViewHolder { holder ->
holder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- linkId = "1"
- readOnly = true
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ linkId = "1"
+ readOnly = true
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest.kt
index 45b0a28d80..d5f04f1b41 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest.kt
@@ -29,6 +29,7 @@ import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
import com.google.android.fhir.datacapture.ChoiceOrientationTypes
import com.google.android.fhir.datacapture.EXTENSION_CHOICE_ORIENTATION_URL
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.common.truth.Truth.assertThat
import org.hl7.fhir.r4.model.CodeType
@@ -52,10 +53,11 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -66,10 +68,11 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -79,10 +82,11 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
@Test
fun bind_shouldSetHeaderText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -109,10 +113,11 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
)
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- questionnaire,
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ questionnaire,
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val radioGroup = viewHolder.itemView.findViewById(R.id.radio_group)
@@ -143,10 +148,11 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
)
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- questionnaire,
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ questionnaire,
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val radioGroup = viewHolder.itemView.findViewById(R.id.radio_group)
@@ -160,16 +166,17 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
@Test
fun bind_noAnswer_shouldLeaveRadioButtonsUnchecked() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val radioButton =
@@ -182,27 +189,28 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_answer_shouldCheckRadioButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 2" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 2" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -233,7 +241,7 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
},
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder
.itemView
.findViewById(R.id.radio_group)
@@ -269,7 +277,7 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
}
}
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder
.itemView
.findViewById(R.id.radio_group)
@@ -294,27 +302,28 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun click_shouldCheckOtherRadioButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 2" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 2" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -342,10 +351,11 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text)
@@ -356,23 +366,24 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- required = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ required = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text.isEmpty())
@@ -382,17 +393,18 @@ class QuestionnaireItemRadioGroupViewHolderFactoryInstrumentedTest {
@Test
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- readOnly = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ readOnly = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val radioButton =
viewHolder.itemView.findViewById(R.id.radio_group).getChildAt(1) as
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemSliderViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemSliderViewHolderFactoryInstrumentedTest.kt
index ded8a3bd62..a4a6038afc 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemSliderViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemSliderViewHolderFactoryInstrumentedTest.kt
@@ -23,6 +23,7 @@ import androidx.core.view.isVisible
import androidx.test.annotation.UiThreadTest
import androidx.test.ext.junit.runners.AndroidJUnit4
import androidx.test.platform.app.InstrumentationRegistry
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
import com.google.android.fhir.datacapture.R
import com.google.android.material.slider.Slider
import com.google.common.truth.Truth.assertThat
@@ -53,10 +54,11 @@ class QuestionnaireItemSliderViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -67,10 +69,11 @@ class QuestionnaireItemSliderViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -80,10 +83,11 @@ class QuestionnaireItemSliderViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetHeaderTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -93,16 +97,17 @@ class QuestionnaireItemSliderViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetSliderValue() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType(10)
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType(10)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.slider).value).isEqualTo(10)
@@ -116,7 +121,7 @@ class QuestionnaireItemSliderViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem)
+ viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
viewHolder.itemView.findViewById(R.id.slider).value = 10.0F
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -127,21 +132,22 @@ class QuestionnaireItemSliderViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetSliderValueToDefault() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType(10)
- }
- )
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType(10)
- }
- )
- }
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType(10)
+ }
+ )
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType(10)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.slider).value).isEqualTo(0.0F)
@@ -151,25 +157,26 @@ class QuestionnaireItemSliderViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(IntegerType("50"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(IntegerType("100"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType("75")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(IntegerType("50"))
}
- ) {}
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(IntegerType("100"))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType("75")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).error).isNull()
@@ -179,25 +186,26 @@ class QuestionnaireItemSliderViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(IntegerType("50"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(IntegerType("100"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType("25")
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(IntegerType("50"))
}
- ) {}
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(IntegerType("100"))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType("25")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).error)
@@ -207,10 +215,11 @@ class QuestionnaireItemSliderViewHolderFactoryInstrumentedTest {
@Test
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.slider).isEnabled).isFalse()
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemAdapter.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemAdapter.kt
index 99c21a8fee..de3da1dd15 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemAdapter.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/QuestionnaireItemAdapter.kt
@@ -105,7 +105,7 @@ internal class QuestionnaireItemAdapter(
}
override fun onBindViewHolder(holder: QuestionnaireItemViewHolder, position: Int) {
- holder.bind(getItem(position))
+ holder.bind(getItem(position), holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
}
/**
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactory.kt
index 052c718537..171999a3b1 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactory.kt
@@ -88,7 +88,7 @@ object QuestionnaireItemBarCodeReaderViewHolderFactory :
}
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
this.questionnaireItemViewItem = questionnaireItemViewItem
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactory.kt
index 50cff2653f..d66dc0ce26 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactory.kt
@@ -134,7 +134,7 @@ internal object QuestionnaireItemAutoCompleteViewHolderFactory :
)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactory.kt
index abc7b8a84e..cf7a526d7d 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactory.kt
@@ -53,7 +53,7 @@ internal object QuestionnaireItemBooleanTypePickerViewHolderFactory :
errorTextView = itemView.findViewById(R.id.error_text_view)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
this.questionnaireItemViewItem = questionnaireItemViewItem
val (questionnaireItem, questionnaireResponseItem) = questionnaireItemViewItem
questionTextView.text = questionnaireItem.localizedTextSpanned
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactory.kt
index d4fe813d30..28ca5a296c 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactory.kt
@@ -52,7 +52,7 @@ internal object QuestionnaireItemCheckBoxGroupViewHolderFactory :
errorTextView = itemView.findViewById(R.id.error_text_view)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactory.kt
index 5fe913ed68..cdae3c28cd 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactory.kt
@@ -97,7 +97,7 @@ internal object QuestionnaireItemDatePickerViewHolderFactory :
}
@SuppressLint("NewApi") // java.time APIs can be used due to desugaring
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactory.kt
index 53a660a85b..8cb000ab9d 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactory.kt
@@ -137,7 +137,7 @@ internal object QuestionnaireItemDateTimePickerViewHolderFactory :
}
@SuppressLint("NewApi") // java.time APIs can be used due to desugaring
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDialogSelectViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDialogSelectViewHolderFactory.kt
index e86611bb17..21f348cbc0 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDialogSelectViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDialogSelectViewHolderFactory.kt
@@ -55,7 +55,7 @@ internal object QuestionnaireItemDialogSelectViewHolderFactory :
holder = DialogSelectViewHolder(itemView)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
val activity =
requireNotNull(holder.question.context.tryUnwrapContext()) {
"Can only use dialog select in an AppCompatActivity context"
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactory.kt
index bd248f491a..89078ef908 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactory.kt
@@ -36,7 +36,7 @@ internal object QuestionnaireItemDisplayViewHolderFactory :
displayTextView = itemView.findViewById(R.id.display_text_view)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactory.kt
index 9718f68433..f407c1e7af 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactory.kt
@@ -50,7 +50,7 @@ internal object QuestionnaireItemDropDownViewHolderFactory :
context = itemView.context
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextViewHolderFactory.kt
index aab81863fa..a22f8730e6 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextViewHolderFactory.kt
@@ -20,8 +20,10 @@ import android.content.Context
import android.text.Editable
import android.view.View
import android.view.View.FOCUS_DOWN
+import android.view.View.VISIBLE
import android.view.inputmethod.EditorInfo
import android.view.inputmethod.InputMethodManager
+import android.widget.Button
import android.widget.TextView
import androidx.core.widget.doAfterTextChanged
import com.google.android.fhir.datacapture.R
@@ -47,6 +49,8 @@ internal abstract class QuestionnaireItemEditTextViewHolderDelegate(
private lateinit var questionTextView: TextView
private lateinit var textInputLayout: TextInputLayout
private lateinit var textInputEditText: TextInputEditText
+ private lateinit var addView: Button
+ private lateinit var removeView: Button
override lateinit var questionnaireItemViewItem: QuestionnaireItemViewItem
override fun init(itemView: View) {
@@ -54,6 +58,9 @@ internal abstract class QuestionnaireItemEditTextViewHolderDelegate(
questionTextView = itemView.findViewById(R.id.question_text_view)
textInputLayout = itemView.findViewById(R.id.text_input_layout)
textInputEditText = itemView.findViewById(R.id.text_input_edit_text)
+ addView = itemView.findViewById(R.id.btn_add_view)
+ removeView = itemView.findViewById(R.id.btn_remove_view)
+ textInputEditText = itemView.findViewById(R.id.text_input_edit_text)
textInputEditText.setRawInputType(rawInputType)
textInputEditText.isSingleLine = isSingleLine
textInputEditText.doAfterTextChanged { editable: Editable? ->
@@ -62,13 +69,14 @@ internal abstract class QuestionnaireItemEditTextViewHolderDelegate(
}
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
} else {
prefixTextView.visibility = View.GONE
}
+ if(isRepeatGroup) addView.visibility = VISIBLE
questionTextView.text = questionnaireItemViewItem.questionnaireItem.localizedTextSpanned
textInputEditText.setText(getText(questionnaireItemViewItem.singleAnswerOrNull))
textInputEditText.setOnFocusChangeListener { view, focused ->
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactory.kt
index 5f2c46dea9..0e609091c7 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactory.kt
@@ -37,7 +37,7 @@ internal object QuestionnaireItemGroupViewHolderFactory :
groupHeader = itemView.findViewById(R.id.group_header)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemRadioGroupViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemRadioGroupViewHolderFactory.kt
index 9e19485630..e9a8884907 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemRadioGroupViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemRadioGroupViewHolderFactory.kt
@@ -53,7 +53,7 @@ internal object QuestionnaireItemRadioGroupViewHolderFactory :
errorTextView = itemView.findViewById(R.id.error_text_view)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
prefixTextView.text = questionnaireItemViewItem.questionnaireItem.localizedPrefixSpanned
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemSliderViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemSliderViewHolderFactory.kt
index cf81d13861..1fe4593e5a 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemSliderViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemSliderViewHolderFactory.kt
@@ -45,7 +45,7 @@ internal object QuestionnaireItemSliderViewHolderFactory :
slider = itemView.findViewById(R.id.slider)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
this.questionnaireItemViewItem = questionnaireItemViewItem
if (!questionnaireItemViewItem.questionnaireItem.prefix.isNullOrEmpty()) {
prefixTextView.visibility = View.VISIBLE
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemViewHolderFactory.kt
index c5ed999e7a..b67470f729 100644
--- a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemViewHolderFactory.kt
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/QuestionnaireItemViewHolderFactory.kt
@@ -58,9 +58,9 @@ open class QuestionnaireItemViewHolder(
delegate.init(itemView)
}
- open fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem) {
+ open fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
delegate.questionnaireItemViewItem = questionnaireItemViewItem
- delegate.bind(questionnaireItemViewItem)
+ delegate.bind(questionnaireItemViewItem, isRepeatGroup)
delegate.setReadOnly(questionnaireItemViewItem.questionnaireItem.readOnly)
delegate.displayValidationResult(delegate.getValidationResult(itemView.context))
}
@@ -87,7 +87,7 @@ interface QuestionnaireItemViewHolderDelegate {
fun init(itemView: View)
/** Binds a [QuestionnaireItemViewItem] to the view. */
- fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem)
+ fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean)
/** Displays validation messages on the view. */
fun displayValidationResult(validationResult: ValidationResult)
diff --git a/datacapture/src/main/java/com/google/android/fhir/datacapture/views/RepeatViewHolderFactory.kt b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/RepeatViewHolderFactory.kt
new file mode 100644
index 0000000000..96fdad0e92
--- /dev/null
+++ b/datacapture/src/main/java/com/google/android/fhir/datacapture/views/RepeatViewHolderFactory.kt
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2021 Google LLC
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.google.android.fhir.datacapture.views
+
+import android.view.ViewGroup
+import com.google.android.fhir.datacapture.QuestionnaireItemViewHolderType
+import com.google.android.fhir.datacapture.contrib.views.QuestionnaireItemPhoneNumberViewHolderFactory
+
+internal object RepeatViewHolderFactory {
+
+ fun create(parent: ViewGroup, viewType: Int): QuestionnaireItemViewHolder {
+ val viewHolderFactory =
+ when (QuestionnaireItemViewHolderType.fromInt(viewType)) {
+ QuestionnaireItemViewHolderType.GROUP -> QuestionnaireItemGroupViewHolderFactory
+ QuestionnaireItemViewHolderType.BOOLEAN_TYPE_PICKER ->
+ QuestionnaireItemBooleanTypePickerViewHolderFactory
+ QuestionnaireItemViewHolderType.DATE_PICKER -> QuestionnaireItemDatePickerViewHolderFactory
+ QuestionnaireItemViewHolderType.DATE_TIME_PICKER ->
+ QuestionnaireItemDateTimePickerViewHolderFactory
+ QuestionnaireItemViewHolderType.EDIT_TEXT_SINGLE_LINE ->
+ QuestionnaireItemEditTextSingleLineViewHolderFactory
+ QuestionnaireItemViewHolderType.EDIT_TEXT_MULTI_LINE ->
+ QuestionnaireItemEditTextMultiLineViewHolderFactory
+ QuestionnaireItemViewHolderType.EDIT_TEXT_INTEGER ->
+ QuestionnaireItemEditTextIntegerViewHolderFactory
+ QuestionnaireItemViewHolderType.EDIT_TEXT_DECIMAL ->
+ QuestionnaireItemEditTextDecimalViewHolderFactory
+ QuestionnaireItemViewHolderType.RADIO_GROUP -> QuestionnaireItemRadioGroupViewHolderFactory
+ QuestionnaireItemViewHolderType.DROP_DOWN -> QuestionnaireItemDropDownViewHolderFactory
+ QuestionnaireItemViewHolderType.DISPLAY -> QuestionnaireItemDisplayViewHolderFactory
+ QuestionnaireItemViewHolderType.QUANTITY ->
+ QuestionnaireItemEditTextQuantityViewHolderFactory
+ QuestionnaireItemViewHolderType.CHECK_BOX_GROUP ->
+ QuestionnaireItemCheckBoxGroupViewHolderFactory
+ QuestionnaireItemViewHolderType.AUTO_COMPLETE ->
+ QuestionnaireItemAutoCompleteViewHolderFactory
+ QuestionnaireItemViewHolderType.DIALOG_SELECT ->
+ QuestionnaireItemDialogSelectViewHolderFactory
+ QuestionnaireItemViewHolderType.SLIDER -> QuestionnaireItemSliderViewHolderFactory
+ QuestionnaireItemViewHolderType.PHONE_NUMBER ->
+ QuestionnaireItemPhoneNumberViewHolderFactory
+ else -> throw NotImplementedError("Question type $viewType not supported.")
+ }
+
+ // Add the - button
+ if (parent.tag == "first") {
+ // Add the + button
+ }
+
+ return viewHolderFactory.create(parent)
+ }
+}
From 3c31aea06230cdb8dd51840ed1280b2c9bee0d22 Mon Sep 17 00:00:00 2001
From: Raazia Tariq <89384079+RaaziaTarique@users.noreply.github.com>
Date: Mon, 4 Apr 2022 19:18:53 +0200
Subject: [PATCH 07/20] - Modified code
---
.../fhir/catalog/CustomNumberPickerFactory.kt | 5 +-
...NumberViewHolderFactoryInstrumentedTest.kt | 152 +++++-----
...ReaderViewHolderFactoryInstrumentedTest.kt | 50 ++--
...mpleteViewHolderFactoryInstrumentedTest.kt | 262 +++++++++---------
...PickerViewHolderFactoryInstrumentedTest.kt | 191 +++++++------
...xGroupViewHolderFactoryInstrumentedTest.kt | 234 ++++++++--------
...PickerViewHolderFactoryInstrumentedTest.kt | 178 ++++++------
...PickerViewHolderFactoryInstrumentedTest.kt | 114 ++++----
...isplayViewHolderFactoryInstrumentedTest.kt | 50 ++--
...opDownViewHolderFactoryInstrumentedTest.kt | 172 ++++++------
...ecimalViewHolderFactoryInstrumentedTest.kt | 180 ++++++------
...ntegerViewHolderFactoryInstrumentedTest.kt | 180 ++++++------
...tiLineViewHolderFactoryInstrumentedTest.kt | 164 +++++------
...antityViewHolderFactoryInstrumentedTest.kt | 141 +++++-----
...leLineViewHolderFactoryInstrumentedTest.kt | 160 ++++++-----
...mGroupViewHolderFactoryInstrumentedTest.kt | 94 +++----
...ultiSelectHolderFactoryInstrumentedTest.kt | 120 ++++----
...oGroupViewHolderFactoryInstrumentedTest.kt | 240 ++++++++--------
...SliderViewHolderFactoryInstrumentedTest.kt | 175 ++++++------
.../datacapture/QuestionnaireItemAdapter.kt | 13 +-
.../QuestionnaireItemViewHolderType.kt | 3 +-
...naireItemBarCodeReaderViewHolderFactory.kt | 5 +-
...nnaireItemAutoCompleteViewHolderFactory.kt | 5 +-
...eItemBooleanTypePickerViewHolderFactory.kt | 5 +-
...naireItemCheckBoxGroupViewHolderFactory.kt | 5 +-
...ionnaireItemDatePickerViewHolderFactory.kt | 5 +-
...aireItemDateTimePickerViewHolderFactory.kt | 5 +-
...nnaireItemDialogSelectViewHolderFactory.kt | 5 +-
...estionnaireItemDisplayViewHolderFactory.kt | 5 +-
...stionnaireItemDropDownViewHolderFactory.kt | 5 +-
...stionnaireItemEditTextViewHolderFactory.kt | 2 +-
...QuestionnaireItemGroupViewHolderFactory.kt | 5 +-
...ionnaireItemRadioGroupViewHolderFactory.kt | 5 +-
...uestionnaireItemSliderViewHolderFactory.kt | 5 +-
.../views/RepeatViewHolderFactory.kt | 1 -
35 files changed, 1524 insertions(+), 1417 deletions(-)
diff --git a/catalog/src/main/java/com/google/android/fhir/catalog/CustomNumberPickerFactory.kt b/catalog/src/main/java/com/google/android/fhir/catalog/CustomNumberPickerFactory.kt
index 4f61abbddf..b781cfbdfe 100644
--- a/catalog/src/main/java/com/google/android/fhir/catalog/CustomNumberPickerFactory.kt
+++ b/catalog/src/main/java/com/google/android/fhir/catalog/CustomNumberPickerFactory.kt
@@ -38,7 +38,10 @@ object CustomNumberPickerFactory :
numberPicker = itemView.findViewById(R.id.number_picker)
}
- override fun bind(questionnaireItemViewItem: QuestionnaireItemViewItem, isRepeatGroup: Boolean) {
+ override fun bind(
+ questionnaireItemViewItem: QuestionnaireItemViewItem,
+ isRepeatGroup: Boolean
+ ) {
numberPicker.minValue = 1
numberPicker.maxValue = 100
}
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest.kt
index 1e6375d160..c6b1721fb2 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest.kt
@@ -68,11 +68,11 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -83,11 +83,11 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -97,11 +97,11 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -111,16 +111,16 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("+12345678910")
- }
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("+12345678910")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -137,23 +137,23 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("+12345678910")
- }
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("+12345678910")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -175,7 +175,10 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder
.itemView
.findViewById(R.id.text_input_edit_text)
@@ -195,7 +198,10 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -204,22 +210,22 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello there")
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello there")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -230,17 +236,17 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { maxLength = 10 },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("+1234567891011")
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { maxLength = 10 },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("+1234567891011")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -251,11 +257,11 @@ class QuestionnaireItemPhoneNumberViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest.kt
index 30962706dd..59909f24cf 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/contrib/views/barcode/QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest.kt
@@ -56,11 +56,11 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix).isVisible).isTrue()
@@ -72,11 +72,11 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix).isVisible).isFalse()
@@ -86,11 +86,11 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question).text.toString())
@@ -102,16 +102,16 @@ class QuestionnaireItemBarCodeReaderViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Barcode Result")
- }
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Barcode Result")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.textInputEditText).text.toString())
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest.kt
index b8ccc77f95..ed73cd26ee 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest.kt
@@ -60,11 +60,11 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -76,11 +76,11 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -91,11 +91,11 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetQuestionText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -106,27 +106,27 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHaveSingleAnswerChip() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = false
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code"))
- )
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = false
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code"))
+ )
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {}
+ .apply {
+ singleAnswerOrNull =
+ (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
+ })
},
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
- .apply {
- singleAnswerOrNull =
- (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
- })
- },
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.flexboxLayout).childCount)
@@ -137,39 +137,39 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHaveTwoAnswerChipWithExternalValueSet() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- answerValueSet = "http://answwer-value-set-url"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent(),
- resolveAnswerValueSet = {
- if (it == "http://answwer-value-set-url") {
- listOf(
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code")),
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
- )
- } else {
- emptyList()
- }
- }
- ) {}
- .apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ answerValueSet = "http://answwer-value-set-url"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent(),
+ resolveAnswerValueSet = {
+ if (it == "http://answwer-value-set-url") {
+ listOf(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code")),
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
+ )
+ } else {
+ emptyList()
+ }
}
- )
+ ) {}
+ .apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
+ }
+ )
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "Test2 Code" }.valueCoding
- }
- )
- },
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "Test2 Code" }.valueCoding
+ }
+ )
+ },
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.flexboxLayout).childCount)
@@ -180,32 +180,32 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHaveSingleAnswerChipWithContainedAnswerValueSet() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = false
- answerValueSet = "#ContainedValueSet"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent(),
- resolveAnswerValueSet = {
- if (it == "#ContainedValueSet") {
- listOf(
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code")),
- Questionnaire.QuestionnaireItemAnswerOptionComponent()
- .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
- )
- } else {
- emptyList()
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = false
+ answerValueSet = "#ContainedValueSet"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent(),
+ resolveAnswerValueSet = {
+ if (it == "#ContainedValueSet") {
+ listOf(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test1-code").setDisplay("Test1 Code")),
+ Questionnaire.QuestionnaireItemAnswerOptionComponent()
+ .setValue(Coding().setCode("test2-code").setDisplay("Test2 Code"))
+ )
+ } else {
+ emptyList()
+ }
}
- }
- ) {}
- .apply {
- singleAnswerOrNull =
- (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
- })
- },
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ ) {}
+ .apply {
+ singleAnswerOrNull =
+ (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "Test1 Code" }.valueCoding
+ })
+ },
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.flexboxLayout).childCount)
@@ -216,11 +216,11 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -231,24 +231,24 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- required = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ required = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -259,24 +259,24 @@ class QuestionnaireItemAutoCompleteViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- readOnly = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "readOnly" }
- }
- )
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ readOnly = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "readOnly" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {}
+ .apply {
+ singleAnswerOrNull =
+ (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.first { it.displayString == "readOnly" }.valueCoding
+ })
},
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {}
- .apply {
- singleAnswerOrNull =
- (QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.first { it.displayString == "readOnly" }.valueCoding
- })
- },
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.flexboxLayout)[0].isEnabled)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest.kt
index 94e34b96fa..d6db026a4c 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest.kt
@@ -48,11 +48,11 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -63,11 +63,11 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -77,14 +77,14 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@Test
fun bind_shouldSetQuestionText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- text = "Question?"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ text = "Question?"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -99,7 +99,10 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.isEmpty())
}
@@ -108,11 +111,11 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun noAnswer_shouldNotCheckYesOrNoRadioButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -134,7 +137,10 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
}
)
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
assertThat(
questionnaireItemViewItem.questionnaireResponseItem.answer.single().valueBooleanType.value
@@ -146,16 +152,16 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun answerTrue_shouldCheckYesRadioButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = BooleanType(true)
- }
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = BooleanType(true)
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -177,7 +183,10 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
}
)
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
assertThat(
questionnaireItemViewItem.questionnaireResponseItem.answer.single().valueBooleanType.value
@@ -189,16 +198,16 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun answerFalse_shouldCheckNoRadioButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = BooleanType(false)
- }
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = BooleanType(false)
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -215,7 +224,10 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.yes_radio_button).performClick()
assertThat(
@@ -232,7 +244,10 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.no_radio_button).performClick()
assertThat(
@@ -255,7 +270,10 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
)
}
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.yes_radio_button).performClick()
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.isEmpty())
@@ -275,7 +293,10 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
)
}
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.yes_radio_button).performClick()
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -298,7 +319,10 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
)
}
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.no_radio_button).performClick()
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.isEmpty())
@@ -318,7 +342,10 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
)
}
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.no_radio_button).performClick()
assertThat(viewHolder.itemView.findViewById(R.id.yes_radio_button).isChecked)
@@ -331,11 +358,11 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text)
@@ -346,17 +373,17 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = BooleanType(true)
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = BooleanType(true)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text.isEmpty())
@@ -367,20 +394,20 @@ class QuestionnaireItemBooleanTypePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- text = "Question?"
- readOnly = true
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = BooleanType(true)
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ text = "Question?"
+ readOnly = true
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = BooleanType(true)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest.kt
index 2773190a7e..5bf59c5558 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest.kt
@@ -53,14 +53,14 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- prefix = "Prefix?"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ prefix = "Prefix?"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -71,14 +71,14 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- prefix = ""
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ prefix = ""
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -88,14 +88,14 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun bind_shouldSetQuestionText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- text = "Question?"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ text = "Question?"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -123,11 +123,11 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
)
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- questionnaire,
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ questionnaire,
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
@@ -159,11 +159,11 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
)
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- questionnaire,
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ questionnaire,
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
@@ -177,18 +177,18 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun bind_noAnswer_shouldLeaveCheckButtonsUnchecked() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
@@ -200,32 +200,32 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_answer_shouldSetCheckBoxButton() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value =
- Coding().apply {
- code = "code 1"
- display = "Coding 1"
- }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value =
- Coding().apply {
- code = "code 1"
- display = "Coding 1"
- }
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value =
+ Coding().apply {
+ code = "code 1"
+ display = "Coding 1"
+ }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value =
+ Coding().apply {
+ code = "code 1"
+ display = "Coding 1"
+ }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
val checkBox = checkBoxGroup.getChildAt(1) as CheckBox
@@ -252,7 +252,10 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
},
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
val checkBox = checkBoxGroup.getChildAt(1) as CheckBox
checkBox.performClick()
@@ -298,7 +301,10 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
}
}
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
val checkBoxGroup = viewHolder.itemView.findViewById(R.id.checkbox_group)
val checkBox = checkBoxGroup.getChildAt(1) as CheckBox
checkBox.performClick()
@@ -311,14 +317,14 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- required = true
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ required = true
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text)
@@ -329,25 +335,25 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- required = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ required = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.error_text_view).text.isEmpty())
@@ -357,19 +363,19 @@ class QuestionnaireItemCheckBoxGroupViewHolderFactoryInstrumentedTest {
@Test
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- repeats = true
- readOnly = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "Coding 1" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ repeats = true
+ readOnly = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "Coding 1" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest.kt
index c57e1c6451..8800242c3b 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest.kt
@@ -55,11 +55,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -70,11 +70,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -84,11 +84,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextInputLayoutHint() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -99,11 +99,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetEmptyDateInput() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -117,15 +117,15 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
fun shouldSetDateInput_localeUs() {
setLocale(Locale.US)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2020, 10, 19))
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2020, 10, 19))
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
viewHolder.itemView.findViewById(R.id.text_input_edit_text).text.toString()
@@ -138,15 +138,15 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
fun shouldSetDateInput_localeJp() {
setLocale(Locale.JAPAN)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2020, 10, 19))
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2020, 10, 19))
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
viewHolder.itemView.findViewById(R.id.text_input_edit_text).text.toString()
@@ -159,15 +159,15 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
fun shouldSetDateInput_localeEn() {
setLocale(Locale.ENGLISH)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2020, 10, 19))
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2020, 10, 19))
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
viewHolder.itemView.findViewById(R.id.text_input_edit_text).text.toString()
@@ -179,26 +179,26 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- required = true
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(DateType(2020, 0, 1))
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ required = true
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(DateType(2020, 0, 1))
+ }
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(DateType(2025, 0, 1))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2026, 0, 1))
+ )
}
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(DateType(2025, 0, 1))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2026, 0, 1))
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -209,25 +209,25 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(DateType(2020, 0, 1))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(DateType(2025, 0, 1))
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(DateType(2020, 0, 1))
+ }
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(DateType(2025, 0, 1))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateType(2023, 0, 1))
+ )
}
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateType(2023, 0, 1))
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -238,11 +238,11 @@ class QuestionnaireItemDatePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_edit_text).isEnabled)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest.kt
index 251b5031fd..7aed59175e 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest.kt
@@ -57,11 +57,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -72,11 +72,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -86,11 +86,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextInputLayoutHint() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -101,11 +101,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetEmptyDateTimeInput() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -122,15 +122,15 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetDateTimeInput() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
- .setValue(DateTimeType(Date(2020 - 1900, 1, 5, 1, 30, 0)))
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent()
+ .setValue(DateTimeType(Date(2020 - 1900, 1, 5, 1, 30, 0)))
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -147,11 +147,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.date_input_layout).error)
@@ -164,25 +164,25 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue((DateTimeType(Date(2020 - 1900, 1, 5, 1, 30, 0))))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue((DateTimeType(Date(2025 - 1900, 1, 5, 1, 30, 0))))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = (DateTimeType(Date(2023 - 1900, 1, 5, 1, 30, 0)))
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue((DateTimeType(Date(2020 - 1900, 1, 5, 1, 30, 0))))
}
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue((DateTimeType(Date(2025 - 1900, 1, 5, 1, 30, 0))))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = (DateTimeType(Date(2023 - 1900, 1, 5, 1, 30, 0)))
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.date_input_layout).error)
@@ -195,11 +195,11 @@ class QuestionnaireItemDateTimePickerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.date_input_edit_text).isEnabled)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest.kt
index 0fa0f3a505..4b9604c8f2 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest.kt
@@ -52,11 +52,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -67,11 +67,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -81,11 +81,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.display_text_view).text.toString())
@@ -95,11 +95,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewVisible() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Display" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.display_text_view).visibility)
@@ -109,11 +109,11 @@ class QuestionnaireItemDisplayViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewGone() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.display_text_view).visibility)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest.kt
index 8f7528cbb8..807eccad85 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest.kt
@@ -60,11 +60,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -76,11 +76,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -91,11 +91,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetTextInputHint() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -110,11 +110,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
value = Coding().setCode("test-code").setDisplay("Test Code")
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -136,11 +136,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
value = Coding().apply { setCode("test-code") }
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -166,11 +166,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
}
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -191,26 +191,26 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
}
}
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- answerValueSet = "http://coding-value-set-url"
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ answerValueSet = "http://coding-value-set-url"
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.value
+ }
+ )
+ },
+ resolveAnswerValueSet = {
+ if (it == "http://coding-value-set-url") {
+ listOf(answerOption)
+ } else {
+ emptyList()
}
- )
- },
- resolveAnswerValueSet = {
- if (it == "http://coding-value-set-url") {
- listOf(answerOption)
- } else {
- emptyList()
}
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -227,17 +227,17 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
assertFailsWith {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = answerOption.value
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { addAnswerOption(answerOption) },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = answerOption.value
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
}
}
@@ -246,11 +246,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -261,23 +261,23 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- required = true
- addAnswerOption(
- Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Coding().apply { display = "display" }
- }
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ required = true
+ addAnswerOption(
+ Questionnaire.QuestionnaireItemAnswerOptionComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Coding().apply { display = "display" }
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -288,11 +288,11 @@ class QuestionnaireItemDropDownViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).isEnabled)
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest.kt
index c3a899d574..aad0029cdc 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest.kt
@@ -56,11 +56,11 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -71,11 +71,11 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -85,11 +85,11 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -100,17 +100,17 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = DecimalType("1.1")
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = DecimalType("1.1")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -127,24 +127,24 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = DecimalType("1.1")
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = DecimalType("1.1")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -165,7 +165,10 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("1.1")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -181,7 +184,10 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -191,26 +197,26 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(DecimalType("2.2"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(DecimalType("4.4"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = DecimalType("3.3")
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(DecimalType("2.2"))
+ }
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(DecimalType("4.4"))
}
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = DecimalType("3.3")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -221,26 +227,26 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(DecimalType("2.1"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(DecimalType("4.2"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = DecimalType("1.1")
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(DecimalType("2.1"))
}
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(DecimalType("4.2"))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = DecimalType("1.1")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -251,11 +257,11 @@ class QuestionnaireItemEditTextDecimalViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest.kt
index e08e1c8a5f..010d9e296a 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest.kt
@@ -55,11 +55,11 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -70,11 +70,11 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -84,11 +84,11 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -99,17 +99,17 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType(5)
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType(5)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -126,24 +126,24 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType(5)
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType(5)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -164,7 +164,10 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("10")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -180,7 +183,10 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -190,26 +196,26 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(IntegerType("2"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(IntegerType("4"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType("3")
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(IntegerType("2"))
+ }
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(IntegerType("4"))
}
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType("3")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -220,26 +226,26 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minValue"
- setValue(IntegerType("2"))
- }
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/maxValue"
- setValue(IntegerType("4"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = IntegerType("1")
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minValue"
+ setValue(IntegerType("2"))
}
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/maxValue"
+ setValue(IntegerType("4"))
+ }
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = IntegerType("1")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -250,11 +256,11 @@ class QuestionnaireItemEditTextIntegerViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest.kt
index a5187110a0..7029b3fcc2 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest.kt
@@ -56,11 +56,11 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -71,11 +71,11 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -85,11 +85,11 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -100,17 +100,17 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Answer")
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Answer")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -127,24 +127,24 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Answer")
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Answer")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -166,7 +166,10 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("Answer")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -183,7 +186,10 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -193,22 +199,22 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello there")
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello there")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -219,22 +225,22 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello")
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -245,11 +251,11 @@ class QuestionnaireItemEditTextMultiLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest.kt
index 5318a6c5f2..d3caa36485 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest.kt
@@ -57,11 +57,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -72,11 +72,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -87,11 +87,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -102,17 +102,17 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Quantity().apply { value = BigDecimal("5") }
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Quantity().apply { value = BigDecimal("5") }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -129,24 +129,24 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Quantity().apply { value = BigDecimal("5") }
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Quantity().apply { value = BigDecimal("5") }
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -167,7 +167,10 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("10")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -183,7 +186,10 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("10.1")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -199,7 +205,10 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
Questionnaire.QuestionnaireItemComponent(),
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -209,11 +218,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -224,17 +233,17 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { required = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = Quantity(22.5)
- }
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { required = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = Quantity(22.5)
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -245,11 +254,11 @@ class QuestionnaireItemEditTextQuantityViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest.kt
index 9ad3e2ab38..9f1f2d7905 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest.kt
@@ -56,11 +56,11 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -71,11 +71,11 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -85,11 +85,11 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.question_text_view).text.toString())
@@ -100,16 +100,16 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Answer")
- }
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Question?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Answer")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -126,23 +126,23 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun shouldSetInputTextToEmpty() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- .addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("Answer")
- }
- )
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ .addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("Answer")
+ }
+ )
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent(),
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent(),
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
@@ -164,7 +164,10 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("Answer")
val answer = questionnaireItemViewItem.questionnaireResponseItem.answer
@@ -181,7 +184,10 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
QuestionnaireResponse.QuestionnaireResponseItemComponent()
) {}
- viewHolder.bind(questionnaireItemViewItem, holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value)
+ viewHolder.bind(
+ questionnaireItemViewItem,
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ )
viewHolder.itemView.findViewById(R.id.text_input_edit_text).setText("")
assertThat(questionnaireItemViewItem.questionnaireResponseItem.answer.size).isEqualTo(0)
@@ -191,22 +197,22 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_noError_shouldShowNoErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello there")
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello there")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -217,22 +223,22 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun displayValidationResult_error_shouldShowErrorMessage() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply {
- addExtension().apply {
- url = "http://hl7.org/fhir/StructureDefinition/minLength"
- setValue(IntegerType("10"))
- }
- },
- QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
- addAnswer(
- QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
- value = StringType("hello")
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply {
+ addExtension().apply {
+ url = "http://hl7.org/fhir/StructureDefinition/minLength"
+ setValue(IntegerType("10"))
}
- )
- }
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent().apply {
+ addAnswer(
+ QuestionnaireResponse.QuestionnaireResponseItemAnswerComponent().apply {
+ value = StringType("hello")
+ }
+ )
+ }
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.text_input_layout).error)
@@ -243,11 +249,11 @@ class QuestionnaireItemEditTextSingleLineViewHolderFactoryInstrumentedTest {
@UiThreadTest
fun bind_readOnly_shouldDisableView() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { readOnly = true },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(
diff --git a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactoryInstrumentedTest.kt b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactoryInstrumentedTest.kt
index e23dac196a..fedc216626 100644
--- a/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactoryInstrumentedTest.kt
+++ b/datacapture/src/androidTest/java/com/google/android/fhir/datacapture/views/QuestionnaireItemGroupViewHolderFactoryInstrumentedTest.kt
@@ -54,11 +54,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldShowPrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "Prefix?" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible).isTrue()
@@ -69,11 +69,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldHidePrefixText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { prefix = "" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.prefix_text_view).isVisible)
@@ -83,11 +83,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewText() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Group header" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Group header" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById(R.id.group_header).text.toString())
@@ -97,11 +97,11 @@ class QuestionnaireItemGroupViewHolderFactoryInstrumentedTest {
@Test
fun shouldSetTextViewVisible() {
viewHolder.bind(
- QuestionnaireItemViewItem(
- Questionnaire.QuestionnaireItemComponent().apply { text = "Group header" },
- QuestionnaireResponse.QuestionnaireResponseItemComponent()
- ) {},
- holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
+ QuestionnaireItemViewItem(
+ Questionnaire.QuestionnaireItemComponent().apply { text = "Group header" },
+ QuestionnaireResponse.QuestionnaireResponseItemComponent()
+ ) {},
+ holder.itemViewType == QuestionnaireItemViewHolderType.REPEAT.value
)
assertThat(viewHolder.itemView.findViewById