changed button visibility

This commit is contained in:
oxidiert
2025-09-30 16:21:20 +02:00
parent 66122dd6c3
commit ac2e0dabd2

View File

@ -75,11 +75,15 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
setupUploadButton() setupUploadButton()
setupDownloadButton() setupDownloadButton()
setupDatabaseButtonHandler() setupDatabaseButtonHandler()
uiHandler.removeCallbacks(statusTicker) uiHandler.removeCallbacks(statusTicker)
updateStatusStrip() updateStatusStrip()
uiHandler.post(statusTicker) uiHandler.post(statusTicker)
val pathExists = File("/data/data/com.dano.test1/databases/questionnaire_database").exists() val pathExists = File("/data/data/com.dano.test1/databases/questionnaire_database").exists()
updateMainButtonsState(pathExists) updateMainButtonsState(pathExists)
updateDownloadButtonState(pathExists) // <<< NEU: Download-Button anhand DB-Status setzen
if (pathExists && !editText.text.isNullOrBlank()) buttonLoad.performClick() if (pathExists && !editText.text.isNullOrBlank()) buttonLoad.performClick()
} }
@ -449,7 +453,14 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
private fun setupDownloadButton() { private fun setupDownloadButton() {
downloadButton.text = t("download") downloadButton.text = t("download")
// Bei Setup gleich den aktuellen Zustand anwenden
val hasDb = File("/data/data/com.dano.test1/databases/questionnaire_database").exists()
updateDownloadButtonState(hasDb)
downloadButton.setOnClickListener { downloadButton.setOnClickListener {
// Falls der Button (später) deaktiviert ist, passiert einfach nichts
if (!downloadButton.isEnabled) return@setOnClickListener
Toast.makeText(activity, t("login_required"), Toast.LENGTH_SHORT).show() Toast.makeText(activity, t("login_required"), Toast.LENGTH_SHORT).show()
} }
} }
@ -468,6 +479,31 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
b.isEnabled = isDatabaseAvailable b.isEnabled = isDatabaseAvailable
b.alpha = if (isDatabaseAvailable) 1.0f else 0.5f b.alpha = if (isDatabaseAvailable) 1.0f else 0.5f
} }
// Der Download-Button wird separat gesteuert
}
/** <<< NEU: Steuert Aktivierung & Look des Download-Buttons je nach DB-Verfügbarkeit */
private fun updateDownloadButtonState(isDatabaseAvailable: Boolean) {
val mb = downloadButton as? MaterialButton
if (isDatabaseAvailable) {
downloadButton.isEnabled = false
downloadButton.alpha = 0.5f
mb?.apply {
strokeWidth = dp(1)
strokeColor = ColorStateList.valueOf(STROKE_DISABLED)
backgroundTintList = ColorStateList.valueOf(Color.parseColor("#F5F5F5"))
rippleColor = ColorStateList.valueOf(Color.parseColor("#00000000"))
}
} else {
downloadButton.isEnabled = true
downloadButton.alpha = 1.0f
mb?.apply {
strokeWidth = dp(2)
strokeColor = ColorStateList.valueOf(STROKE_ENABLED)
backgroundTintList = ColorStateList.valueOf(Color.WHITE)
rippleColor = ColorStateList.valueOf(Color.parseColor("#22000000"))
}
}
} }
private fun dp(v: Int): Int = (v * activity.resources.displayMetrics.density).toInt() private fun dp(v: Int): Int = (v * activity.resources.displayMetrics.density).toInt()
@ -542,7 +578,6 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
val ageMs = if (ts > 0L) (System.currentTimeMillis() - ts) else 0L val ageMs = if (ts > 0L) (System.currentTimeMillis() - ts) else 0L
val h = TimeUnit.MILLISECONDS.toHours(ageMs) val h = TimeUnit.MILLISECONDS.toHours(ageMs)
val m = TimeUnit.MILLISECONDS.toMinutes(ageMs) - h * 60 val m = TimeUnit.MILLISECONDS.toMinutes(ageMs) - h * 60
// Sitzungstext lokalisieren
if (ts > 0L) { if (ts > 0L) {
statusSession.text = "${t("session_label")}: ${h}${t("hours_short")} ${m}${t("minutes_short")}" statusSession.text = "${t("session_label")}: ${h}${t("hours_short")} ${m}${t("minutes_short")}"
} else { } else {