From 9d7c9de4ab767f6dddb6c6a0327d463a0e0cf6e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Wed, 21 Jan 2026 22:32:38 +0100 Subject: [PATCH] Bugfixes 3 --- .../mediaprocessing/coordinator/Preference.kt | 50 ++++++++++++++----- 1 file changed, 37 insertions(+), 13 deletions(-) diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/Preference.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/Preference.kt index a64a16cb..7662c7fa 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/Preference.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/Preference.kt @@ -37,23 +37,47 @@ data class AudioPreference( @Component class Preference(private val coordinatorEnv: CoordinatorEnv) { + fun getProcesserPreference(): ProcesserPreference { - var preference: ProcesserPreference = ProcesserPreference.default() - coordinatorEnv.preference.ifExists({ - val text = readText() - try { - val result = Gson().fromJson(text, PeferenceConfig::class.java) - preference = result.processer - } catch (e: Exception) { - e.printStackTrace() - } - }, orElse = { - coordinatorEnv.preference.writeText(Gson().toJson(PeferenceConfig(preference))) - }) - return preference + val default = ProcesserPreference.default() + + val file = coordinatorEnv.preference + if (!file.exists()) { + // Opprett fil med default + file.writeText(Gson().toJson(PeferenceConfig(default))) + return default + } + + val text = try { + file.readText() + } catch (e: Exception) { + 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 = {}) { if (this.exists()) { block()