aboutsummaryrefslogtreecommitdiffstats
path: root/src/displayapp/screens/WatchFaceTerminal.cpp
diff options
context:
space:
mode:
authorJean-François Milants <jf@codingfield.com>2025-12-26 14:50:01 +0100
committerJF <JF002@users.noreply.github.com>2026-01-05 13:19:06 +0100
commitc451d2ce9fae0c491a5e516a85f2faf1cf25273e (patch)
treeb6c58142c8c0ff6f0056af3a7df47bed0b1899a6 /src/displayapp/screens/WatchFaceTerminal.cpp
parent8d87a9ed2a7ba4c04d24862f85306f7496b3d6f5 (diff)
Refactor battery color calculation logic into `BatteryIcon::ColorFromPercentage()`.
Diffstat (limited to 'src/displayapp/screens/WatchFaceTerminal.cpp')
-rw-r--r--src/displayapp/screens/WatchFaceTerminal.cpp10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/displayapp/screens/WatchFaceTerminal.cpp b/src/displayapp/screens/WatchFaceTerminal.cpp
index 4442b29c..69fbc3ce 100644
--- a/src/displayapp/screens/WatchFaceTerminal.cpp
+++ b/src/displayapp/screens/WatchFaceTerminal.cpp
@@ -123,12 +123,10 @@ void WatchFaceTerminal::Refresh() {
powerPresent = batteryController.IsPowerPresent();
batteryPercentRemaining = batteryController.PercentRemaining();
if (batteryPercentRemaining.IsUpdated() || powerPresent.IsUpdated()) {
- // HSV color model has red at 0° and green at 120°.
- // We lock satuation and brightness at 100% and traverse the cilinder
- // between red and green, thus avoiding the darker RGB on medium battery
- // charges and giving us a much nicer color range.
- uint8_t hue = batteryPercentRemaining.Get() * 120 / 100;
- lv_obj_set_style_local_text_color(batteryValue, LV_LABEL_PART_MAIN, LV_STATE_DEFAULT, lv_color_hsv_to_rgb(hue, 100, 100));
+ lv_obj_set_style_local_text_color(batteryValue,
+ LV_LABEL_PART_MAIN,
+ LV_STATE_DEFAULT,
+ BatteryIcon::ColorFromPercentage(batteryPercentRemaining.Get()));
lv_label_set_text_fmt(batteryValue, "#ffffff [BATT]# %d%%", batteryPercentRemaining.Get());
if (batteryController.IsCharging()) {
lv_label_ins_text(batteryValue, LV_LABEL_POS_LAST, " Charging");