From 41ec8c4ee6a0bd66a7604bef084044f610a1a674 Mon Sep 17 00:00:00 2001 From: Lysec Date: Thu, 29 Jan 2026 13:09:42 +0100 Subject: [PATCH] DarkModeService: add one shot timer to detect sunrise properly (#1599) --- Services/Location/DarkModeService.qml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/Services/Location/DarkModeService.qml b/Services/Location/DarkModeService.qml index 271126a9f..5eb9f5dee 100644 --- a/Services/Location/DarkModeService.qml +++ b/Services/Location/DarkModeService.qml @@ -52,6 +52,7 @@ Singleton { function onResumed() { Logger.i("DarkModeService", "System resumed - re-evaluating dark mode"); root.update(); + resumeRetryTimer.restart(); } } @@ -63,6 +64,16 @@ Singleton { } } + Timer { + id: resumeRetryTimer + interval: 2000 + repeat: false + onTriggered: { + Logger.i("DarkModeService", "Resume retry - re-evaluating dark mode again"); + root.update(); + } + } + function init() { Logger.i("DarkModeService", "Service started"); root.update(); @@ -151,18 +162,23 @@ Singleton { function applyCurrentMode(changes) { const now = Date.now(); + Logger.i("DarkModeService", `Applying mode at ${new Date(now).toLocaleString()} (${now})`); // changes.findLast(change => change.time < now) // not available in QML... let lastChange = null; for (var i = 0; i < changes.length; i++) { + Logger.d("DarkModeService", `Checking change: time=${changes[i].time} (${new Date(changes[i].time).toLocaleString()}), darkMode=${changes[i].darkMode}`); if (changes[i].time < now) { lastChange = changes[i]; } } if (lastChange) { + Logger.i("DarkModeService", `Selected change: time=${lastChange.time}, darkMode=${lastChange.darkMode}`); Settings.data.colorSchemes.darkMode = lastChange.darkMode; Logger.d("DarkModeService", `Reset: darkmode=${lastChange.darkMode}`); + } else { + Logger.w("DarkModeService", "No suitable change found for current time!"); } }