From 53dc9dafe7c4b3a9be89724df2226715d6626651 Mon Sep 17 00:00:00 2001 From: mark9064 <30447455+mark9064@users.noreply.github.com> Date: Sun, 21 Jul 2024 15:52:35 +0100 Subject: [PATCH] aod: simplify AOD disablement based on notification status --- src/components/settings/Settings.h | 37 ++++-------------------------- 1 file changed, 5 insertions(+), 32 deletions(-) diff --git a/src/components/settings/Settings.h b/src/components/settings/Settings.h index 1ab67095..602de3a5 100644 --- a/src/components/settings/Settings.h +++ b/src/components/settings/Settings.h @@ -196,14 +196,6 @@ namespace Pinetime { if (status != settings.notificationStatus) { settingsChanged = true; } - // Disable always on screen while sleep mode is enabled - if (settings.alwaysOnDisplay.enabled) { - if (status == Notification::Sleep) { - settings.alwaysOnDisplay.state = false; - } else { - settings.alwaysOnDisplay.state = true; - } - } settings.notificationStatus = status; }; @@ -222,31 +214,19 @@ namespace Pinetime { return settings.screenTimeOut; }; - void SetAlwaysOnDisplay(bool state) { - if (state != settings.alwaysOnDisplay.state) { - settingsChanged = true; - } - settings.alwaysOnDisplay.state = state; - }; - bool GetAlwaysOnDisplay() const { - return settings.alwaysOnDisplay.state; + return settings.alwaysOnDisplay && GetNotificationStatus() != Notification::Sleep; }; void SetAlwaysOnDisplaySetting(bool state) { - if (state != settings.alwaysOnDisplay.enabled) { + if (state != settings.alwaysOnDisplay) { settingsChanged = true; } - settings.alwaysOnDisplay.enabled = state; - - // Don't enable always on if we are currently in notification sleep - if (GetNotificationStatus() != Notification::Sleep) { - SetAlwaysOnDisplay(state); - } + settings.alwaysOnDisplay = state; } bool GetAlwaysOnDisplaySetting() const { - return settings.alwaysOnDisplay.enabled; + return settings.alwaysOnDisplay; } void SetShakeThreshold(uint16_t thresh) { @@ -323,19 +303,12 @@ namespace Pinetime { static constexpr uint32_t settingsVersion = 0x0008; - // To enable disabling it during notification sleep, differentiate between - // the setting being on, and the setting being set by the user - struct alwaysOnDisplayData { - bool enabled = false; - bool state = false; - }; - struct SettingsData { uint32_t version = settingsVersion; uint32_t stepsGoal = 10000; uint32_t screenTimeOut = 15000; - alwaysOnDisplayData alwaysOnDisplay; + bool alwaysOnDisplay = false; ClockType clockType = ClockType::H24; WeatherFormat weatherFormat = WeatherFormat::Metric;