Bugfixes 3
This commit is contained in:
parent
3c9dfd4276
commit
9d7c9de4ab
@ -37,23 +37,47 @@ data class AudioPreference(
|
|||||||
|
|
||||||
@Component
|
@Component
|
||||||
class Preference(private val coordinatorEnv: CoordinatorEnv) {
|
class Preference(private val coordinatorEnv: CoordinatorEnv) {
|
||||||
|
|
||||||
fun getProcesserPreference(): ProcesserPreference {
|
fun getProcesserPreference(): ProcesserPreference {
|
||||||
var preference: ProcesserPreference = ProcesserPreference.default()
|
val default = ProcesserPreference.default()
|
||||||
coordinatorEnv.preference.ifExists({
|
|
||||||
val text = readText()
|
val file = coordinatorEnv.preference
|
||||||
try {
|
if (!file.exists()) {
|
||||||
val result = Gson().fromJson(text, PeferenceConfig::class.java)
|
// Opprett fil med default
|
||||||
preference = result.processer
|
file.writeText(Gson().toJson(PeferenceConfig(default)))
|
||||||
} catch (e: Exception) {
|
return default
|
||||||
e.printStackTrace()
|
}
|
||||||
}
|
|
||||||
}, orElse = {
|
val text = try {
|
||||||
coordinatorEnv.preference.writeText(Gson().toJson(PeferenceConfig(preference)))
|
file.readText()
|
||||||
})
|
} catch (e: Exception) {
|
||||||
return preference
|
return default
|
||||||
|
}
|
||||||
|
|
||||||
|
val parsed = try {
|
||||||
|
Gson().fromJson(text, PeferenceConfig::class.java)
|
||||||
|
} catch (e: Exception) {
|
||||||
|
return default
|
||||||
|
}
|
||||||
|
|
||||||
|
// Hvis hele configen er null → default
|
||||||
|
val cfg = parsed ?: return default
|
||||||
|
|
||||||
|
// Hvis processer er null → default
|
||||||
|
val p = cfg.processer ?: return default
|
||||||
|
|
||||||
|
// Hvis underfelter er null → fyll inn default
|
||||||
|
val safeVideo = p.videoPreference ?: default.videoPreference
|
||||||
|
val safeAudio = p.audioPreference ?: default.audioPreference
|
||||||
|
|
||||||
|
return ProcesserPreference(
|
||||||
|
videoPreference = safeVideo,
|
||||||
|
audioPreference = safeAudio
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private fun File.ifExists(block: File.() -> Unit, orElse: () -> Unit = {}) {
|
private fun File.ifExists(block: File.() -> Unit, orElse: () -> Unit = {}) {
|
||||||
if (this.exists()) {
|
if (this.exists()) {
|
||||||
block()
|
block()
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user