changed button visibility
This commit is contained in:
@ -75,11 +75,15 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
|
||||
setupUploadButton()
|
||||
setupDownloadButton()
|
||||
setupDatabaseButtonHandler()
|
||||
|
||||
uiHandler.removeCallbacks(statusTicker)
|
||||
updateStatusStrip()
|
||||
uiHandler.post(statusTicker)
|
||||
|
||||
val pathExists = File("/data/data/com.dano.test1/databases/questionnaire_database").exists()
|
||||
updateMainButtonsState(pathExists)
|
||||
updateDownloadButtonState(pathExists) // <<< NEU: Download-Button anhand DB-Status setzen
|
||||
|
||||
if (pathExists && !editText.text.isNullOrBlank()) buttonLoad.performClick()
|
||||
}
|
||||
|
||||
@ -449,7 +453,14 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
|
||||
|
||||
private fun setupDownloadButton() {
|
||||
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 {
|
||||
// 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()
|
||||
}
|
||||
}
|
||||
@ -468,6 +479,31 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
|
||||
b.isEnabled = isDatabaseAvailable
|
||||
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()
|
||||
@ -542,7 +578,6 @@ class HandlerOpeningScreen(private val activity: MainActivity) {
|
||||
val ageMs = if (ts > 0L) (System.currentTimeMillis() - ts) else 0L
|
||||
val h = TimeUnit.MILLISECONDS.toHours(ageMs)
|
||||
val m = TimeUnit.MILLISECONDS.toMinutes(ageMs) - h * 60
|
||||
// Sitzungstext lokalisieren
|
||||
if (ts > 0L) {
|
||||
statusSession.text = "${t("session_label")}: ${h}${t("hours_short")} ${m}${t("minutes_short")}"
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user