From e22ff56ab1901fe6a9f856299d6478a5dbc90fa2 Mon Sep 17 00:00:00 2001 From: oxidiert Date: Mon, 4 Aug 2025 10:10:28 +0200 Subject: [PATCH] added clientCode_change --- .../com/dano/test1/HandlerOpeningScreen.kt | 42 ++++++++++++++++--- 1 file changed, 36 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/dano/test1/HandlerOpeningScreen.kt b/app/src/main/java/com/dano/test1/HandlerOpeningScreen.kt index 0f40c5c..92599b9 100644 --- a/app/src/main/java/com/dano/test1/HandlerOpeningScreen.kt +++ b/app/src/main/java/com/dano/test1/HandlerOpeningScreen.kt @@ -155,7 +155,13 @@ class HandlerOpeningScreen(private val activity: MainActivity) { } val isDatabaseView = inputText.endsWith("_database") - val clientCode = if (isDatabaseView) inputText.removeSuffix("_database") else inputText + val isChangeView = inputText.endsWith("_change") + + // Extrahiere nur den echten Code, ohne die Suffixe + val clientCode = inputText + .removeSuffix("_database") + .removeSuffix("_change") + GlobalValues.LAST_CLIENT_CODE = clientCode CoroutineScope(Dispatchers.IO).launch { @@ -170,17 +176,22 @@ class HandlerOpeningScreen(private val activity: MainActivity) { } withContext(Dispatchers.Main) { + // Normales Laden + handleNormalLoad(clientCode) + + // Erweiterungen bei speziellen Suffixen if (isDatabaseView) { - handleNormalLoad(clientCode) showCompletedQuestionnaires(clientCode) - } else { - handleNormalLoad(clientCode) + enableCompletedQuestionnaireButtons(clientCode) + } else if (isChangeView) { + enableCompletedQuestionnaireButtons(clientCode) } } } } + private suspend fun handleNormalLoad(clientCode: String) { val completedIds = withContext(Dispatchers.IO) { MyApp.database.completedQuestionnaireDao().getCompletedQuestionnairesForClient(clientCode) @@ -292,8 +303,6 @@ class HandlerOpeningScreen(private val activity: MainActivity) { } } - - private fun startQuestionnaireForButton(button: Button) { val fileName = questionnaireFiles[button] ?: return val questionnaire = QuestionnaireGeneric(fileName) @@ -487,4 +496,25 @@ class HandlerOpeningScreen(private val activity: MainActivity) { paint.isFakeBoldText = false return y } + + private fun enableCompletedQuestionnaireButtons(clientCode: String) { + CoroutineScope(Dispatchers.IO).launch { + val completedEntries = MyApp.database.completedQuestionnaireDao().getAllForClient(clientCode) + + val completedFiles = completedEntries + .filter { it.isDone } + .map { it.questionnaireId.lowercase() } + + withContext(Dispatchers.Main) { + questionnaireFiles.forEach { (button, fileName) -> + val isCompleted = completedFiles.any { fileName.lowercase().contains(it) } + if (isCompleted) { + button.isEnabled = true + button.alpha = 1.0f + } + } + } + } + } + }