From 20ac7e8df38836d0a72c378b900b99c827c996c2 Mon Sep 17 00:00:00 2001 From: KaffeinatedKat Date: Fri, 29 Sep 2023 21:00:07 -0600 Subject: feat: always on display --- src/displayapp/screens/settings/SettingDisplay.cpp | 14 ++++++++++++-- src/displayapp/screens/settings/SettingDisplay.h | 2 +- 2 files changed, 13 insertions(+), 3 deletions(-) (limited to 'src/displayapp/screens') diff --git a/src/displayapp/screens/settings/SettingDisplay.cpp b/src/displayapp/screens/settings/SettingDisplay.cpp index bd533e67..760f1e9e 100644 --- a/src/displayapp/screens/settings/SettingDisplay.cpp +++ b/src/displayapp/screens/settings/SettingDisplay.cpp @@ -15,7 +15,7 @@ namespace { } } -constexpr std::array SettingDisplay::options; +constexpr std::array SettingDisplay::options; SettingDisplay::SettingDisplay(Pinetime::Applications::DisplayApp* app, Pinetime::Controllers::Settings& settingsController) : app {app}, settingsController {settingsController} { @@ -46,7 +46,11 @@ SettingDisplay::SettingDisplay(Pinetime::Applications::DisplayApp* app, Pinetime char buffer[4]; for (unsigned int i = 0; i < options.size(); i++) { cbOption[i] = lv_checkbox_create(container1, nullptr); - snprintf(buffer, sizeof(buffer), "%2" PRIu16 "s", options[i] / 1000); + if (options[i] == 0) { + sprintf(buffer, "%s", "Always On"); + } else { + sprintf(buffer, "%2ds", options[i] / 1000); + } lv_checkbox_set_text(cbOption[i], buffer); cbOption[i]->user_data = this; lv_obj_set_event_cb(cbOption[i], event_handler); @@ -64,6 +68,12 @@ SettingDisplay::~SettingDisplay() { } void SettingDisplay::UpdateSelected(lv_obj_t* object, lv_event_t event) { + if (settingsController.GetScreenTimeOut() == 0) { + settingsController.SetAlwaysOnDisplay(true); + } else { + settingsController.SetAlwaysOnDisplay(false); + } + if (event == LV_EVENT_CLICKED) { for (unsigned int i = 0; i < options.size(); i++) { if (object == cbOption[i]) { diff --git a/src/displayapp/screens/settings/SettingDisplay.h b/src/displayapp/screens/settings/SettingDisplay.h index 64212c02..a4370463 100644 --- a/src/displayapp/screens/settings/SettingDisplay.h +++ b/src/displayapp/screens/settings/SettingDisplay.h @@ -21,7 +21,7 @@ namespace Pinetime { private: DisplayApp* app; - static constexpr std::array options = {5000, 7000, 10000, 15000, 20000, 30000}; + static constexpr std::array options = {5000, 7000, 10000, 15000, 20000, 30000, 0}; Controllers::Settings& settingsController; lv_obj_t* cbOption[options.size()]; -- cgit v1.2.3-70-g09d2