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 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"
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user