Reihienfolge Abhänging von Antwort implementiert. Ist die Antwort gelb, wird der nächste Fragebogen angezeigt. Ist sie nicht gelb wird der Fragebogen geskippt. Framework musste dafür angepasst bzw. erweitert werden.

This commit is contained in:
Daniel Ocks
2025-07-28 08:34:38 +02:00
parent f7a629ccde
commit 9f254dff5c

View File

@ -218,8 +218,6 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
updateButtonTexts()
val rhsPoints = buttonPoints.entries.firstOrNull { it.key.contains("questionnaire_2_rhs", ignoreCase = true) }?.value
var nextIndex = (completedIndexes.lastOrNull() ?: -1) + 1
while (nextIndex < questionnaireEntries.size) {
@ -227,15 +225,13 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
val condition = entry.condition
if (condition != null) {
val answers = MyApp.database.answerDao()
.getAnswersForClientAndQuestionnaire(clientCode, condition.questionnaire)
val answers = MyApp.database.answerDao().getAnswersForClientAndQuestionnaire(clientCode, condition.questionnaire)
val relevantAnswer = answers.find {
it.questionId.endsWith(condition.questionId)
}
val answerValue = relevantAnswer?.answerValue ?: ""
val conditionMet = when (condition.operator) {
"!=" -> answerValue != condition.value
"==" -> answerValue == condition.value
@ -259,8 +255,6 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
val nextButton = questionnaireFiles.entries.firstOrNull { it.value == nextFileName }?.key
setButtonsEnabled(listOfNotNull(nextButton))
}
}