Make sure that config is initialized before loading settings
This commit is contained in:
@ -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")
|
||||
}
|
||||
|
||||
|
||||
@ -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"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user