Make sure that config is initialized before loading settings

This commit is contained in:
Juha Heinanen
2026-06-26 16:09:55 +03:00
parent a18235c2f0
commit 47eada966d
2 changed files with 12 additions and 1 deletions

View File

@ -14,6 +14,11 @@ object Config {
private lateinit var config: String
private lateinit var previousConfig: String
private lateinit var previousLines: List<String>
private var initialized = false
fun isInitialized(): Boolean {
return initialized
}
fun initialize(ctx: Context) {
@ -26,6 +31,7 @@ object Config {
previousConfig = String(Utils.getFileContents(configPath)!!, StandardCharsets.ISO_8859_1)
}
previousLines = previousConfig.split("\n")
initialized = true
val logLevel = previousVariable("log_level")
if (logLevel == "") {
@ -251,6 +257,7 @@ object Config {
}
fun variable(name: String): String {
if (!initialized) return ""
for (line in config.split("\n")) {
val nameValue = line.split(" ", limit = 2)
if (nameValue.size == 2 && nameValue[0] == name)
@ -261,6 +268,7 @@ object Config {
fun variables(name: String): ArrayList<String> {
val result = ArrayList<String>()
if (!initialized) return result
for (line in config.split("\n")) {
val nameValue = line.split(" ", limit = 2)
if (nameValue.size == 2 && nameValue[0] == name)
@ -270,14 +278,17 @@ object Config {
}
fun addVariable(name: String, value: String) {
if (!initialized) return
config += "$name $value\n"
}
fun removeVariable(variable: String) {
if (!initialized) return
config = Utils.removeLinesStartingWithString(config, "$variable ")
}
fun removeVariableValue(variable: String, value: String) {
if (!initialized) return
config = Utils.removeLinesStartingWithString(config, "$variable $value")
}

View File

@ -38,7 +38,7 @@ class SettingsViewModel: ViewModel() {
fun loadSettings(ctx: Context) {
if (isLoaded) return else isLoaded = true
if (isLoaded || !Config.isInitialized()) return else isLoaded = true
autoStart.value = Config.variable("auto_start") == "yes"