Skip to content

Commit

Permalink
BatteryIcon: Change color with charge percentage
Browse files Browse the repository at this point in the history
  • Loading branch information
vkareh committed Nov 20, 2024
1 parent a77a3dc commit d063633
Showing 1 changed file with 6 additions and 9 deletions.
15 changes: 6 additions & 9 deletions src/displayapp/screens/BatteryIcon.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,12 @@ void BatteryIcon::SetBatteryPercentage(uint8_t percentage) {
lv_obj_set_height(batteryJuice, percentage * 14 / 100);
lv_obj_realign(batteryJuice);
if (colorOnLowBattery) {
static constexpr int lowBatteryThreshold = 15;
static constexpr int criticalBatteryThreshold = 5;
if (percentage > lowBatteryThreshold) {
SetColor(LV_COLOR_WHITE);
} else if (percentage > criticalBatteryThreshold) {
SetColor(LV_COLOR_ORANGE);
} else {
SetColor(Colors::deepOrange);
}
// 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 = percentage * 120 / 100;
SetColor(lv_color_hsv_to_rgb(hue, 100, 100));
}
}

Expand Down

0 comments on commit d063633

Please sign in to comment.