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