added button for save and edit

This commit is contained in:
oxidiert
2025-08-04 15:21:17 +02:00
parent e22ff56ab1
commit 2cf9faed38
5 changed files with 110 additions and 64 deletions

View File

@ -20,6 +20,8 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
private lateinit var textView: TextView
private lateinit var buttonContainer: LinearLayout
private lateinit var buttonLoad: Button
private lateinit var saveButton: Button
private lateinit var editButton: Button
private val dynamicButtons = mutableListOf<Button>()
private val questionnaireFiles = mutableMapOf<Button, String>()
@ -36,6 +38,8 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
setupLanguageSpinner()
setupLoadButton()
setupSaveButton()
setupEditButton()
if (!editText.text.isNullOrBlank()) {
buttonLoad.performClick()
@ -48,6 +52,8 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
textView = activity.findViewById(R.id.textView)
buttonContainer = activity.findViewById(R.id.buttonContainer)
buttonLoad = activity.findViewById(R.id.loadButton)
saveButton = activity.findViewById(R.id.saveButton)
editButton = activity.findViewById(R.id.editButton)
val tag = editText.tag as? String ?: ""
editText.hint = LanguageManager.getText(languageID, tag)
@ -154,13 +160,7 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
return
}
val isDatabaseView = inputText.endsWith("_database")
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
@ -176,16 +176,7 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
}
withContext(Dispatchers.Main) {
// Normales Laden
handleNormalLoad(clientCode)
// Erweiterungen bei speziellen Suffixen
if (isDatabaseView) {
showCompletedQuestionnaires(clientCode)
enableCompletedQuestionnaireButtons(clientCode)
} else if (isChangeView) {
enableCompletedQuestionnaireButtons(clientCode)
}
}
}
}
@ -517,4 +508,56 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
}
}
}
private fun setupSaveButton() {
saveButton.text = LanguageManager.getText(languageID, "save")
saveButton.setOnClickListener {
val clientCode = editText.text.toString().trim()
if (clientCode.isBlank()) {
val message = LanguageManager.getText(languageID, "please_client_code")
Toast.makeText(activity, message, Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
GlobalValues.LAST_CLIENT_CODE = clientCode
showCompletedQuestionnaires(clientCode)
}
}
private fun setupEditButton() {
editButton.text = LanguageManager.getText(languageID, "edit")
editButton.setOnClickListener {
val clientCode = editText.text.toString().trim()
if (clientCode.isBlank()) {
val message = LanguageManager.getText(languageID, "please_client_code")
Toast.makeText(activity, message, Toast.LENGTH_SHORT).show()
return@setOnClickListener
}
GlobalValues.LAST_CLIENT_CODE = clientCode
CoroutineScope(Dispatchers.IO).launch {
val completedEntries = MyApp.database.completedQuestionnaireDao().getAllForClient(clientCode)
val completedFiles = completedEntries
.filter { it.isDone }
.map { it.questionnaireId.lowercase() }
buttonPoints.clear()
for (entry in completedEntries) {
if (entry.isDone) {
buttonPoints[entry.questionnaireId] = entry.sumPoints ?: 0
}
}
withContext(Dispatchers.Main) {
updateButtonTexts()
val enabledButtons = questionnaireFiles.filter { (_, fileName) ->
completedFiles.any { completedId -> fileName.lowercase().contains(completedId) }
}.keys.toList()
setButtonsEnabled(enabledButtons)
}
}
}
}
}