From 47eada966dcfdbf756f72a3a8f9379c7a0f9c568 Mon Sep 17 00:00:00 2001 From: Juha Heinanen Date: Fri, 26 Jun 2026 16:09:55 +0300 Subject: [PATCH] Make sure that config is initialized before loading settings --- app/src/main/kotlin/com/tutpro/baresip/Config.kt | 11 +++++++++++ .../kotlin/com/tutpro/baresip/SettingsViewModel.kt | 2 +- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/app/src/main/kotlin/com/tutpro/baresip/Config.kt b/app/src/main/kotlin/com/tutpro/baresip/Config.kt index da95803a..a10173f7 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/Config.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/Config.kt @@ -14,6 +14,11 @@ object Config { private lateinit var config: String private lateinit var previousConfig: String private lateinit var previousLines: List + 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 { val result = ArrayList() + 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") } diff --git a/app/src/main/kotlin/com/tutpro/baresip/SettingsViewModel.kt b/app/src/main/kotlin/com/tutpro/baresip/SettingsViewModel.kt index 57a8b5cd..a101c02e 100644 --- a/app/src/main/kotlin/com/tutpro/baresip/SettingsViewModel.kt +++ b/app/src/main/kotlin/com/tutpro/baresip/SettingsViewModel.kt @@ -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"