Bugfixes 3

This commit is contained in:
Brage Skjønborg 2026-01-21 22:32:38 +01:00
parent 3c9dfd4276
commit 9d7c9de4ab

View File

@ -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)))
return default
}
val text = try {
file.readText()
} catch (e: Exception) { } catch (e: Exception) {
e.printStackTrace() return default
} }
}, orElse = {
coordinatorEnv.preference.writeText(Gson().toJson(PeferenceConfig(preference))) val parsed = try {
}) Gson().fromJson(text, PeferenceConfig::class.java)
return preference } 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()