From 02586101e6300b26fc9fd524b645c9c2984aef9a Mon Sep 17 00:00:00 2001 From: RocketGod <57732082+RocketGod-git@users.noreply.github.com> Date: Sat, 8 Feb 2025 13:09:40 -0800 Subject: [PATCH] Add modal to turn off screen when charging is detected (#2514) --- firmware/application/ui_navigation.cpp | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index b8650dfc..7d66d325 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -351,12 +351,29 @@ void SystemStatusView::on_battery_data(const BatteryStateMessage* msg) { batt_was_inited = true; refresh(); } + + // Check if charging state changed to charging + static bool was_charging = false; + if (msg->on_charger && !was_charging) { + // Only show charging modal when transitioning to charging state + nav_.display_modal( + "CHARGING", + "Screen on while charging?", + YESNO, + [this](bool keep_screen_on) { + if (!keep_screen_on) { + EventDispatcher::set_display_sleep(true); + } + }); + } + was_charging = msg->on_charger; + if (!pmem::ui_hide_numeric_battery()) { battery_text.set_battery(msg->valid_mask, msg->percent, msg->on_charger); } if (!pmem::ui_hide_battery_icon()) { battery_icon.set_battery(msg->valid_mask, msg->percent, msg->on_charger); - }; + } } void SystemStatusView::refresh() {