@@ -194,11 +194,15 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
194
194
// Timber.e(it.encodeResourceToString())
195
195
questionnaireFragmentBuilder.setQuestionnaireResponse(it.encodeResourceToString())
196
196
}
197
- intent.getStringArrayListExtra(QUESTIONNAIRE_LAUNCH_CONTEXT )?.let {
198
- val launchContextMap = it.associateBy { resourceString ->
199
- val resource = parser.parseResource(resourceString) as Resource
200
- resource.resourceType.name.lowercase()
201
- }
197
+ intent.getBundleExtra(QUESTIONNAIRE_LAUNCH_CONTEXTS )?.let { launchContextBundle ->
198
+ val launchContextMap =
199
+ buildMap<String , String > {
200
+ launchContextBundle.keySet().forEach {
201
+ this [it] =
202
+ launchContextBundle.getString(it)
203
+ ? : throw NotImplementedError (" launchContext with null is not currently supported" )
204
+ }
205
+ }
202
206
questionnaireFragmentBuilder.setQuestionnaireLaunchContextMap(launchContextMap)
203
207
}
204
208
@@ -503,7 +507,7 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
503
507
const val QUESTIONNAIRE_ARG_BARCODE_KEY = " patient-barcode"
504
508
const val WHO_IDENTIFIER_SYSTEM = " WHO-HCID"
505
509
const val QUESTIONNAIRE_AGE = " PR-age"
506
- const val QUESTIONNAIRE_LAUNCH_CONTEXT =
510
+ const val QUESTIONNAIRE_LAUNCH_CONTEXTS =
507
511
" org.smartregister.fhircore.engine.ui.questionnaire.launchContext"
508
512
const val QUESTIONNAIRE_TRACE = " Questionnaire.renderFragment"
509
513
@@ -514,7 +518,7 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
514
518
questionnaireType : QuestionnaireType = QuestionnaireType .DEFAULT ,
515
519
questionnaireResponse : QuestionnaireResponse ? = null,
516
520
backReference : String? = null,
517
- launchContexts : ArrayList < Resource >? = null ,
521
+ launchContexts : Map < String , Resource > = emptyMap() ,
518
522
populationResources : ArrayList <out Resource > = ArrayList (),
519
523
) =
520
524
bundleOf(
@@ -536,12 +540,11 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
536
540
)
537
541
}
538
542
launchContexts
539
- ?.takeIf { it.isNotEmpty() }
540
- ?.let { list ->
541
- putStringArrayList(
542
- QUESTIONNAIRE_LAUNCH_CONTEXT ,
543
- ArrayList (list.map { it.encodeResourceToString() }),
544
- )
543
+ .takeIf { it.isNotEmpty() }
544
+ ?.let { kv ->
545
+ val launchContextsBundlePairs =
546
+ kv.map { it.key to it.value.encodeResourceToString() }.toTypedArray()
547
+ putBundle(QUESTIONNAIRE_LAUNCH_CONTEXTS , bundleOf(* launchContextsBundlePairs))
545
548
}
546
549
}
547
550
@@ -552,7 +555,7 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
552
555
groupIdentifier : String? = null,
553
556
questionnaireType : QuestionnaireType = QuestionnaireType .DEFAULT ,
554
557
intentBundle : Bundle = Bundle .EMPTY ,
555
- launchContexts : ArrayList < Resource >? = null ,
558
+ launchContexts : Map < String , Resource > = emptyMap() ,
556
559
populationResources : ArrayList <Resource >? = null,
557
560
) {
558
561
context.startActivity(
@@ -578,7 +581,7 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
578
581
questionnaireType : QuestionnaireType = QuestionnaireType .DEFAULT ,
579
582
backReference : String? = null,
580
583
intentBundle : Bundle = Bundle .EMPTY ,
581
- launchContexts : ArrayList < Resource >? = null ,
584
+ launchContexts : Map < String , Resource > = emptyMap() ,
582
585
populationResources : ArrayList <Resource >? = null,
583
586
) {
584
587
context.startActivityForResult(
0 commit comments