Skip to content

Commit

Permalink
mw-core sdc update to v1.0.0-preview14.3-SNAPSHOT (#2625)
Browse files Browse the repository at this point in the history
* 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 <12814349+LZRS@users.noreply.github.com>
  • Loading branch information
evance-mose and LZRS committed Jul 31, 2023
1 parent 63aedca commit 5e40d4c
Show file tree
Hide file tree
Showing 11 changed files with 352 additions and 121 deletions.
2 changes: 1 addition & 1 deletion android/engine/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -191,7 +191,7 @@ dependencies {
exclude group: 'com.google.android.fhir', module: 'common'
exclude group: 'com.google.android.fhir', module: 'engine'
}
api('org.smartregister:data-capture:1.0.0-preview5-SNAPSHOT') {
api('org.smartregister:data-capture:1.0.0-preview14.3-SNAPSHOT') {
transitive = true
exclude group: 'org.hamcrest', module: 'hamcrest-core'
exclude group: 'javax.xml.bind', module: 'jaxb-api'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ package org.smartregister.fhircore.engine.ui.questionnaire

import android.app.Activity
import android.app.AlertDialog
import android.content.Context
import android.content.Intent
import android.os.Bundle
import android.view.MenuItem
Expand Down Expand Up @@ -179,8 +180,8 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
// Timber.e(it.encodeResourceToString())
questionnaireFragmentBuilder.setQuestionnaireResponse(it.encodeResourceToString())
}
intent.getStringExtra(QUESTIONNAIRE_LAUNCH_CONTEXT)?.let {
questionnaireFragmentBuilder.setQuestionnaireLaunchContext(it)
intent.getStringArrayListExtra(QUESTIONNAIRE_LAUNCH_CONTEXT)?.let {
questionnaireFragmentBuilder.setQuestionnaireLaunchContexts(it)
}

fragment = questionnaireFragmentBuilder.build()
Expand Down Expand Up @@ -486,7 +487,7 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
questionnaireResponse: QuestionnaireResponse? = null,
backReference: String? = null,
launchContext: Resource? = null,
launchContexts: ArrayList<Resource>? = null,
populationResources: ArrayList<out Resource> = ArrayList()
) =
bundleOf(
Expand All @@ -507,9 +508,65 @@ open class QuestionnaireActivity : BaseMultiLanguageActivity(), View.OnClickList
resourcesList.toCollection(ArrayList())
)
}
launchContext?.let {
putString(QUESTIONNAIRE_LAUNCH_CONTEXT, it.encodeResourceToString())
launchContexts?.takeIf { it.isNotEmpty() }?.let { list ->
putStringArrayList(
QUESTIONNAIRE_LAUNCH_CONTEXT,
ArrayList(list.map { it.encodeResourceToString() })
)
}
}

fun launchQuestionnaire(
context: Context,
questionnaireId: String,
clientIdentifier: String? = null,
groupIdentifier: String? = null,
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
intentBundle: Bundle = Bundle.EMPTY,
launchContexts: ArrayList<Resource>? = null,
populationResources: ArrayList<Resource>? = null
) {
context.startActivity(
Intent(context, QuestionnaireActivity::class.java)
.putExtras(intentBundle)
.putExtras(
intentArgs(
clientIdentifier = clientIdentifier,
groupIdentifier = groupIdentifier,
formName = questionnaireId,
questionnaireType = questionnaireType,
launchContexts = launchContexts,
populationResources = populationResources ?: ArrayList()
)
)
)
}

fun launchQuestionnaireForResult(
context: Activity,
questionnaireId: String,
clientIdentifier: String? = null,
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
backReference: String? = null,
intentBundle: Bundle = Bundle.EMPTY,
launchContexts: ArrayList<Resource>? = null,
populationResources: ArrayList<Resource>? = null
) {
context.startActivityForResult(
Intent(context, QuestionnaireActivity::class.java)
.putExtras(intentBundle)
.putExtras(
intentArgs(
clientIdentifier = clientIdentifier,
formName = questionnaireId,
questionnaireType = questionnaireType,
backReference = backReference,
launchContexts = launchContexts,
populationResources = populationResources ?: ArrayList()
)
),
0
)
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -24,15 +24,11 @@ import android.content.res.Configuration
import android.content.res.Resources
import android.graphics.drawable.Drawable
import android.os.Build
import android.os.Bundle
import android.os.LocaleList
import android.widget.Toast
import androidx.core.content.ContextCompat
import java.util.Locale
import org.hl7.fhir.r4.model.Resource
import org.smartregister.fhircore.engine.R
import org.smartregister.fhircore.engine.ui.questionnaire.QuestionnaireActivity
import org.smartregister.fhircore.engine.ui.questionnaire.QuestionnaireType
import timber.log.Timber

fun Context.showToast(message: String, toastLength: Int = Toast.LENGTH_LONG) =
Expand Down Expand Up @@ -90,54 +86,3 @@ fun Context.getDrawable(name: String): Drawable {
fun <T : Enum<T>> Enum<T>.isIn(vararg values: Enum<T>): Boolean {
return values.any { this == it }
}

inline fun <reified Q : QuestionnaireActivity> Context.launchQuestionnaire(
questionnaireId: String,
clientIdentifier: String? = null,
groupIdentifier: String? = null,
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
intentBundle: Bundle = Bundle.EMPTY,
launchContext: Resource? = null,
populationResources: ArrayList<Resource>? = null
) {
this.startActivity(
Intent(this, Q::class.java)
.putExtras(intentBundle)
.putExtras(
QuestionnaireActivity.intentArgs(
clientIdentifier = clientIdentifier,
groupIdentifier = groupIdentifier,
formName = questionnaireId,
questionnaireType = questionnaireType,
launchContext = launchContext,
populationResources = populationResources ?: ArrayList()
)
)
)
}

inline fun <reified Q : QuestionnaireActivity> Context.launchQuestionnaireForResult(
questionnaireId: String,
clientIdentifier: String? = null,
questionnaireType: QuestionnaireType = QuestionnaireType.DEFAULT,
backReference: String? = null,
intentBundle: Bundle = Bundle.EMPTY,
launchContext: Resource? = null,
populationResources: ArrayList<Resource>? = null
) {
(this as Activity).startActivityForResult(
Intent(this, Q::class.java)
.putExtras(intentBundle)
.putExtras(
QuestionnaireActivity.intentArgs(
clientIdentifier = clientIdentifier,
formName = questionnaireId,
questionnaireType = questionnaireType,
backReference = backReference,
launchContext = launchContext,
populationResources = populationResources ?: ArrayList()
)
),
0
)
}
Loading

0 comments on commit 5e40d4c

Please sign in to comment.