Files
luna-tracker/app/src/main/java/it/danieleverducci/lunatracker/SettingsActivity.kt
Maximilian von Heyden cbd18cd891 Add configurable buttons, separate settings screens and backup activity
- Add ButtonConfigActivity for customizing main screen buttons with
  drag-and-drop reordering and individual size options (S/M/L)
- Move storage settings to separate StorageSettingsActivity
- Move signature setting to storage settings (relevant for WebDAV sync)
- Move data backup to separate BackupActivity with export/import
- Make "more" overflow button configurable in size
- Simplify SettingsActivity to 3 navigation buttons
- Add logbook rename/delete functionality
- Improve S/M/L button contrast with visible borders
2026-01-11 21:31:49 +01:00

62 lines
2.1 KiB
Kotlin

package it.danieleverducci.lunatracker
import android.content.Intent
import android.os.Bundle
import android.view.View
import android.widget.TextView
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity
import it.danieleverducci.lunatracker.repository.LocalSettingsRepository
class SettingsActivity : AppCompatActivity() {
private lateinit var settingsRepository: LocalSettingsRepository
private lateinit var textViewStorageStatus: TextView
private val storageSettingsLauncher = registerForActivityResult(
ActivityResultContracts.StartActivityForResult()
) { _ ->
updateStorageStatus()
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_settings)
textViewStorageStatus = findViewById(R.id.settings_storage_status)
findViewById<View>(R.id.settings_storage).setOnClickListener {
storageSettingsLauncher.launch(Intent(this, StorageSettingsActivity::class.java))
}
findViewById<View>(R.id.settings_button_config).setOnClickListener {
startActivity(Intent(this, ButtonConfigActivity::class.java))
}
findViewById<View>(R.id.settings_backup).setOnClickListener {
startActivity(Intent(this, BackupActivity::class.java))
}
findViewById<View>(R.id.settings_close).setOnClickListener {
finish()
}
settingsRepository = LocalSettingsRepository(this)
loadSettings()
}
override fun onResume() {
super.onResume()
updateStorageStatus()
}
private fun loadSettings() {
updateStorageStatus()
}
private fun updateStorageStatus() {
val dataRepo = settingsRepository.loadDataRepository()
textViewStorageStatus.text = when (dataRepo) {
LocalSettingsRepository.DATA_REPO.WEBDAV -> getString(R.string.settings_storage_status_webdav)
else -> getString(R.string.settings_storage_status_local)
}
}
}