UI opgesplitst: hoofdscherm (status+acties) en apart instellingenscherm (SettingsActivity)

This commit is contained in:
eddy 2026-10-14 20:16:32 +02:00
commit 29691e1425
5 changed files with 107 additions and 75 deletions

View file

@ -1,12 +1,10 @@
package nl.eddydevink.buschauffeurswekker
import android.Manifest
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
import android.os.Build
import android.os.Bundle
import android.widget.EditText
import android.widget.TextView
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
@ -21,6 +19,7 @@ import java.time.Instant
import java.time.ZoneId
import java.time.format.DateTimeFormatter
/** Hoofdscherm: status + acties. Instellingen staan in [SettingsActivity]. */
class MainActivity : AppCompatActivity() {
private lateinit var prefs: Prefs
@ -35,14 +34,16 @@ class MainActivity : AppCompatActivity() {
findViewById<MaterialButton>(R.id.btn_check).setOnClickListener { runCheck() }
findViewById<MaterialButton>(R.id.btn_test).setOnClickListener {
AlarmScheduler.scheduleTest(this)
Toast.makeText(this, "Testwekker gaat over 10 seconden af", Toast.LENGTH_SHORT).show()
toast("Testwekker gaat over 10 seconden af")
}
findViewById<MaterialButton>(R.id.btn_settings).setOnClickListener {
startActivity(Intent(this, SettingsActivity::class.java))
}
findViewById<MaterialButton>(R.id.btn_save).setOnClickListener { saveSettings() }
// Staat altijd zichtbaar in de status-edit: pionnen van de volgende controle alvast zetten.
AlarmScheduler.scheduleNoonCheck(this)
// Config via launch-intent (installatie/hulp): adb shell am start ... --es url "..." --es user "..." --es pass "..."
// Config via launch-intent (installatiehulp):
// adb shell am start ... --es url "..." --es user "..." --es pass "..."
handleSetupIntent(intent)
}
@ -61,7 +62,6 @@ class MainActivity : AppCompatActivity() {
if (!url.isNullOrBlank()) prefs.calendarUrl = url.trim()
if (!user.isNullOrBlank()) prefs.username = user.trim()
if (pass != null) prefs.password = pass
renderSettings()
lifecycleScope.launch {
val r = ShiftCheck.run(this@MainActivity)
renderStatus()
@ -72,7 +72,6 @@ class MainActivity : AppCompatActivity() {
override fun onResume() {
super.onResume()
renderStatus()
renderSettings()
}
private fun renderStatus() {
@ -94,21 +93,7 @@ class MainActivity : AppCompatActivity() {
}
}
private fun renderSettings() {
findViewById<EditText>(R.id.et_url).setText(prefs.calendarUrl.orEmpty())
findViewById<EditText>(R.id.et_user).setText(prefs.username.orEmpty())
findViewById<EditText>(R.id.et_pass).setText(prefs.password.orEmpty())
}
private fun saveSettings() {
prefs.calendarUrl = findViewById<EditText>(R.id.et_url).text.toString().trim()
prefs.username = findViewById<EditText>(R.id.et_user).text.toString().trim()
prefs.password = findViewById<EditText>(R.id.et_pass).text.toString()
toast("Instellingen opgeslagen")
}
private fun runCheck() {
saveSettings()
val btn = findViewById<MaterialButton>(R.id.btn_check)
btn.isEnabled = false
btn.text = "Bezig…"