Skip to content

Commit 651efba

Browse files
committed
Incorporated review feedback.
1 parent e50be73 commit 651efba

File tree

5 files changed

+42
-24
lines changed

5 files changed

+42
-24
lines changed

catalog/src/main/java/com/google/android/fhir/catalog/DemoQuestionnaireFragment.kt

+12-13
Original file line numberDiff line numberDiff line change
@@ -138,19 +138,18 @@ class DemoQuestionnaireFragment : Fragment() {
138138
if (childFragmentManager.findFragmentByTag(QUESTIONNAIRE_FRAGMENT_TAG) == null) {
139139
childFragmentManager.commit {
140140
setReorderingAllowed(true)
141-
val questionnaireFragment =
142-
QuestionnaireFragment.builder()
143-
.apply {
144-
setCustomQuestionnaireItemViewHolderFactoryMatchersProvider(
145-
ContribQuestionnaireItemViewHolderFactoryMatchersProviderFactory
146-
.LOCATION_WIDGET_PROVIDER,
147-
)
148-
setQuestionnaire(args.questionnaireJsonStringKey!!)
149-
showReviewPageBeforeSubmit(args.enableReviewMode)
150-
showReviewPageFirst(true)
151-
}
152-
.build()
153-
add(R.id.container, questionnaireFragment, QUESTIONNAIRE_FRAGMENT_TAG)
141+
val questionnaireFragmentLambda =
142+
LayoutConfig.questionnaireLambdaMap[args.questionnaireLambdaKey]
143+
val questionnaireFragmentBuilder =
144+
QuestionnaireFragment.builder().apply {
145+
setCustomQuestionnaireItemViewHolderFactoryMatchersProvider(
146+
ContribQuestionnaireItemViewHolderFactoryMatchersProviderFactory
147+
.LOCATION_WIDGET_PROVIDER,
148+
)
149+
setQuestionnaire(args.questionnaireJsonStringKey!!)
150+
}
151+
questionnaireFragmentLambda?.invoke(questionnaireFragmentBuilder)
152+
add(R.id.container, questionnaireFragmentBuilder.build(), QUESTIONNAIRE_FRAGMENT_TAG)
154153
}
155154
}
156155
}

catalog/src/main/java/com/google/android/fhir/catalog/LayoutConfig.kt

+21-3
Original file line numberDiff line numberDiff line change
@@ -18,22 +18,40 @@ package com.google.android.fhir.catalog
1818

1919
import androidx.annotation.DrawableRes
2020
import androidx.annotation.StringRes
21+
import com.google.android.fhir.datacapture.QuestionnaireFragment
2122

2223
data class LayoutConfig(
2324
@DrawableRes val iconId: Int,
2425
@StringRes val textId: Int,
2526
val questionnaireFileName: String,
26-
val enableReviewMode: Boolean,
27+
val questionnaireLambdaKey: String,
2728
) {
29+
30+
companion object {
31+
val questionnaireLambdaMap: Map<String, QuestionnaireFragment.Builder.() -> Unit> =
32+
mapOf(
33+
"" to
34+
{
35+
showReviewPageFirst(false)
36+
showReviewPageBeforeSubmit(false)
37+
},
38+
"showreviewpagefirstandbeforesubmit" to
39+
{
40+
showReviewPageFirst(true)
41+
showReviewPageBeforeSubmit(true)
42+
},
43+
)
44+
}
45+
2846
class Builder {
2947
@DrawableRes var iconId: Int = 0
3048

3149
@StringRes var textId: Int = 0
3250
var questionnaireFileName: String = ""
33-
var enableReviewMode: Boolean = false
51+
var questionnaireLambdaKey: String = ""
3452

3553
fun build(): LayoutConfig {
36-
return LayoutConfig(iconId, textId, questionnaireFileName, enableReviewMode)
54+
return LayoutConfig(iconId, textId, questionnaireFileName, questionnaireLambdaKey)
3755
}
3856
}
3957
}

catalog/src/main/java/com/google/android/fhir/catalog/LayoutListFragment.kt

+1-1
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ class LayoutListFragment : Fragment(R.layout.layout_list_fragment) {
8181
backgroundContext = coroutineContext,
8282
fileName = layout.config.questionnaireFileName,
8383
),
84-
enableReviewMode = layout.config.enableReviewMode,
84+
questionnaireLambdaKey = layout.config.questionnaireLambdaKey,
8585
),
8686
)
8787
}

catalog/src/main/java/com/google/android/fhir/catalog/LayoutListViewModel.kt

+4-4
Original file line numberDiff line numberDiff line change
@@ -36,31 +36,31 @@ class LayoutListViewModel(application: Application, private val state: SavedStat
3636
iconId = R.drawable.ic_defaultlayout
3737
textId = R.string.layout_name_default_text
3838
questionnaireFileName = "layout_default.json"
39-
enableReviewMode = false
39+
questionnaireLambdaKey = ""
4040
},
4141
),
4242
PAGINATED(
4343
layoutConfig {
4444
iconId = R.drawable.ic_paginatedlayout
4545
textId = R.string.layout_name_paginated
4646
questionnaireFileName = "layout_paginated.json"
47-
enableReviewMode = false
47+
questionnaireLambdaKey = ""
4848
},
4949
),
5050
REVIEW(
5151
layoutConfig {
5252
iconId = R.drawable.ic_reviewlayout
5353
textId = R.string.layout_name_review
5454
questionnaireFileName = "layout_review.json"
55-
enableReviewMode = true
55+
questionnaireLambdaKey = "showreviewpagefirstandbeforesubmit"
5656
},
5757
),
5858
READ_ONLY(
5959
layoutConfig {
6060
iconId = R.drawable.ic_readonlylayout
6161
textId = R.string.layout_name_read_only
6262
questionnaireFileName = ""
63-
enableReviewMode = false
63+
questionnaireLambdaKey = ""
6464
},
6565
),
6666
}

catalog/src/main/res/navigation/nav_graph.xml

+4-3
Original file line numberDiff line numberDiff line change
@@ -90,9 +90,10 @@
9090
android:defaultValue="@null"
9191
/>
9292
<argument
93-
android:name="enableReviewMode"
94-
app:argType="boolean"
95-
android:defaultValue="false"
93+
android:name="questionnaireLambdaKey"
94+
app:argType="string"
95+
app:nullable="true"
96+
android:defaultValue="@null"
9697
/>
9798
<action
9899
android:id="@+id/action_galleryQuestionnaireFragment_to_questionnaireResponseFragment"

0 commit comments

Comments
 (0)