Skip to content

Commit 5e40d4c

Browse files
evance-moseLZRS
andauthored
mw-core sdc update to v1.0.0-preview14.3-SNAPSHOT (#2625)
* Update sdc to v1.0.0-preview14.3-SNAPSHOT * Add tests in android extension * update tests in android extension * Replace inline launchQuestionnaire extension functions Since they're not getting tracked in our codcov jacoco/jacoco#654 --------- Co-authored-by: L≡ZRS <[email protected]>
1 parent 63aedca commit 5e40d4c

File tree

11 files changed

+352
-121
lines changed

11 files changed

+352
-121
lines changed

android/engine/build.gradle

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -191,7 +191,7 @@ dependencies {
191191
exclude group: 'com.google.android.fhir', module: 'common'
192192
exclude group: 'com.google.android.fhir', module: 'engine'
193193
}
194-
api('org.smartregister:data-capture:1.0.0-preview5-SNAPSHOT') {
194+
api('org.smartregister:data-capture:1.0.0-preview14.3-SNAPSHOT') {
195195
transitive = true
196196
exclude group: 'org.hamcrest', module: 'hamcrest-core'
197197
exclude group: 'javax.xml.bind', module: 'jaxb-api'

android/engine/src/main/java/org/smartregister/fhircore/engine/ui/questionnaire/QuestionnaireActivity.kt

Lines changed: 62 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ package org.smartregister.fhircore.engine.ui.questionnaire
1818

1919
import android.app.Activity
2020
import android.app.AlertDialog
21+
import android.content.Context
2122
import android.content.Intent
2223
import android.os.Bundle
2324
import android.view.MenuItem
@@ -179,8 +180,8 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
179180
// Timber.e(it.encodeResourceToString())
180181
questionnaireFragmentBuilder.setQuestionnaireResponse(it.encodeResourceToString())
181182
}
182-
intent.getStringExtra(QUESTIONNAIRE_LAUNCH_CONTEXT)?.let {
183-
questionnaireFragmentBuilder.setQuestionnaireLaunchContext(it)
183+
intent.getStringArrayListExtra(QUESTIONNAIRE_LAUNCH_CONTEXT)?.let {
184+
questionnaireFragmentBuilder.setQuestionnaireLaunchContexts(it)
184185
}
185186

186187
fragment = questionnaireFragmentBuilder.build()
@@ -486,7 +487,7 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
486487
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
487488
questionnaireResponse: QuestionnaireResponse? = null,
488489
backReference: String? = null,
489-
launchContext: Resource? = null,
490+
launchContexts: ArrayList<Resource>? = null,
490491
populationResources: ArrayList<out Resource> = ArrayList()
491492
) =
492493
bundleOf(
@@ -507,9 +508,65 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
507508
resourcesList.toCollection(ArrayList())
508509
)
509510
}
510-
launchContext?.let {
511-
putString(QUESTIONNAIRE_LAUNCH_CONTEXT, it.encodeResourceToString())
511+
launchContexts?.takeIf { it.isNotEmpty() }?.let { list ->
512+
putStringArrayList(
513+
QUESTIONNAIRE_LAUNCH_CONTEXT,
514+
ArrayList(list.map { it.encodeResourceToString() })
515+
)
512516
}
513517
}
518+
519+
fun launchQuestionnaire(
520+
context: Context,
521+
questionnaireId: String,
522+
clientIdentifier: String? = null,
523+
groupIdentifier: String? = null,
524+
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
525+
intentBundle: Bundle = Bundle.EMPTY,
526+
launchContexts: ArrayList<Resource>? = null,
527+
populationResources: ArrayList<Resource>? = null
528+
) {
529+
context.startActivity(
530+
Intent(context, QuestionnaireActivity::class.java)
531+
.putExtras(intentBundle)
532+
.putExtras(
533+
intentArgs(
534+
clientIdentifier = clientIdentifier,
535+
groupIdentifier = groupIdentifier,
536+
formName = questionnaireId,
537+
questionnaireType = questionnaireType,
538+
launchContexts = launchContexts,
539+
populationResources = populationResources ?: ArrayList()
540+
)
541+
)
542+
)
543+
}
544+
545+
fun launchQuestionnaireForResult(
546+
context: Activity,
547+
questionnaireId: String,
548+
clientIdentifier: String? = null,
549+
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
550+
backReference: String? = null,
551+
intentBundle: Bundle = Bundle.EMPTY,
552+
launchContexts: ArrayList<Resource>? = null,
553+
populationResources: ArrayList<Resource>? = null
554+
) {
555+
context.startActivityForResult(
556+
Intent(context, QuestionnaireActivity::class.java)
557+
.putExtras(intentBundle)
558+
.putExtras(
559+
intentArgs(
560+
clientIdentifier = clientIdentifier,
561+
formName = questionnaireId,
562+
questionnaireType = questionnaireType,
563+
backReference = backReference,
564+
launchContexts = launchContexts,
565+
populationResources = populationResources ?: ArrayList()
566+
)
567+
),
568+
0
569+
)
570+
}
514571
}
515572
}

android/engine/src/main/java/org/smartregister/fhircore/engine/util/extension/AndroidExtensions.kt

Lines changed: 0 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,11 @@ import android.content.res.Configuration
2424
import android.content.res.Resources
2525
import android.graphics.drawable.Drawable
2626
import android.os.Build
27-
import android.os.Bundle
2827
import android.os.LocaleList
2928
import android.widget.Toast
3029
import androidx.core.content.ContextCompat
3130
import java.util.Locale
32-
import org.hl7.fhir.r4.model.Resource
3331
import org.smartregister.fhircore.engine.R
34-
import org.smartregister.fhircore.engine.ui.questionnaire.QuestionnaireActivity
35-
import org.smartregister.fhircore.engine.ui.questionnaire.QuestionnaireType
3632
import timber.log.Timber
3733

3834
fun Context.showToast(message: String, toastLength: Int = Toast.LENGTH_LONG) =
@@ -90,54 +86,3 @@ fun Context.getDrawable(name: String): Drawable {
9086
fun <T : Enum<T>> Enum<T>.isIn(vararg values: Enum<T>): Boolean {
9187
return values.any { this == it }
9288
}
93-
94-
inline fun <reified Q : QuestionnaireActivity> Context.launchQuestionnaire(
95-
questionnaireId: String,
96-
clientIdentifier: String? = null,
97-
groupIdentifier: String? = null,
98-
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
99-
intentBundle: Bundle = Bundle.EMPTY,
100-
launchContext: Resource? = null,
101-
populationResources: ArrayList<Resource>? = null
102-
) {
103-
this.startActivity(
104-
Intent(this, Q::class.java)
105-
.putExtras(intentBundle)
106-
.putExtras(
107-
QuestionnaireActivity.intentArgs(
108-
clientIdentifier = clientIdentifier,
109-
groupIdentifier = groupIdentifier,
110-
formName = questionnaireId,
111-
questionnaireType = questionnaireType,
112-
launchContext = launchContext,
113-
populationResources = populationResources ?: ArrayList()
114-
)
115-
)
116-
)
117-
}
118-
119-
inline fun <reified Q : QuestionnaireActivity> Context.launchQuestionnaireForResult(
120-
questionnaireId: String,
121-
clientIdentifier: String? = null,
122-
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
123-
backReference: String? = null,
124-
intentBundle: Bundle = Bundle.EMPTY,
125-
launchContext: Resource? = null,
126-
populationResources: ArrayList<Resource>? = null
127-
) {
128-
(this as Activity).startActivityForResult(
129-
Intent(this, Q::class.java)
130-
.putExtras(intentBundle)
131-
.putExtras(
132-
QuestionnaireActivity.intentArgs(
133-
clientIdentifier = clientIdentifier,
134-
formName = questionnaireId,
135-
questionnaireType = questionnaireType,
136-
backReference = backReference,
137-
launchContext = launchContext,
138-
populationResources = populationResources ?: ArrayList()
139-
)
140-
),
141-
0
142-
)
143-
}

0 commit comments

Comments
 (0)