From 0e96dcfd56fa9348363269903df74f3e303a05d4 Mon Sep 17 00:00:00 2001 From: Randall Winkhart Date: Mon, 1 Jun 2026 21:09:35 -0400 Subject: [PATCH] Make low fuel color configurable --- package.json | 3 ++- src/c/main.c | 9 +++++++-- src/c/settings.h | 1 + src/pkjs/config.js | 8 ++++++++ src/pkjs/customClay.js | 3 +++ 5 files changed, 21 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index ea09b8e..d7fb1b4 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,8 @@ "CLAY_BG_COLOR", "CLAY_BAR_MG_COLOR", "CLAY_TIME_MG_COLOR", - "CLAY_FG_COLOR" + "CLAY_FG_COLOR", + "CLAY_LOW_FUEL_COLOR" ], "resources": { "media": [ diff --git a/src/c/main.c b/src/c/main.c index 9f766c2..ebb9548 100644 --- a/src/c/main.c +++ b/src/c/main.c @@ -54,10 +54,10 @@ static void batt_callback(BatteryChargeState state) { s_batt_level = state.charge_percent / 5; layer_mark_dirty(s_fuel_layer); if (!s_low_fuel_indicator && s_batt_level <= settings.LowFuelBars) { - replace_gbitmap_color(s_applied_fg, GColorChromeYellow, s_e_icon, s_e_layer); + replace_gbitmap_color(s_applied_fg, settings.ColorLowFuel, s_e_icon, s_e_layer); s_low_fuel_indicator = true; } else if (s_low_fuel_indicator && s_batt_level > settings.LowFuelBars) { - replace_gbitmap_color(GColorChromeYellow, s_applied_fg, s_e_icon, s_e_layer); + replace_gbitmap_color(settings.ColorLowFuel, s_applied_fg, s_e_icon, s_e_layer); s_low_fuel_indicator = false; } } @@ -307,6 +307,7 @@ static void inbox_received_handler(DictionaryIterator *iter, void *context) { Tuple *color_mg_bar_tuple = dict_find(iter, MESSAGE_KEY_CLAY_BAR_MG_COLOR); Tuple *color_mg_time_tuple = dict_find(iter, MESSAGE_KEY_CLAY_TIME_MG_COLOR); Tuple *color_fg_tuple = dict_find(iter, MESSAGE_KEY_CLAY_FG_COLOR); + Tuple *color_low_fuel_tuple = dict_find(iter, MESSAGE_KEY_CLAY_LOW_FUEL_COLOR); if (show_time_mg_tuple) { settings.ShowTimeMG = show_time_mg_tuple->value->uint8; } @@ -328,6 +329,9 @@ static void inbox_received_handler(DictionaryIterator *iter, void *context) { if (color_fg_tuple) { settings.ColorFG = GColorFromHEX(color_fg_tuple->value->int32); } + if (color_low_fuel_tuple) { + settings.ColorLowFuel = GColorFromHEX(color_low_fuel_tuple->value->int32); + } persist_write_data(STORAGE_KEY_SETTINGS, &settings, sizeof(settings)); apply_settings(false); } @@ -344,6 +348,7 @@ static void init() { settings.ColorMGBars = GColorDarkGray; settings.ColorMGTime = GColorDarkGray; settings.ColorFG = GColorWhite; + settings.ColorLowFuel = GColorChromeYellow; } // load bitmaps diff --git a/src/c/settings.h b/src/c/settings.h index cc37ab3..2446574 100644 --- a/src/c/settings.h +++ b/src/c/settings.h @@ -11,6 +11,7 @@ typedef struct ClaySettings { GColor ColorMGBars; GColor ColorMGTime; GColor ColorFG; + GColor ColorLowFuel; } __attribute__((__packed__)) ClaySettings; _Static_assert(sizeof(ClaySettings) <= 256, "ClaySettings exceeds Pebble 256-byte persist limit!"); diff --git a/src/pkjs/config.js b/src/pkjs/config.js index da7a10c..6597d92 100644 --- a/src/pkjs/config.js +++ b/src/pkjs/config.js @@ -123,6 +123,14 @@ module.exports = [ "defaultValue": "ffffff", "label": "Foreground color", "sunlight": false, + }, + { + "id": "custom_color_low_fuel", + "type": "color", + "messageKey": "CLAY_LOW_FUEL_COLOR", + "defaultValue": "ffaa00", + "label": "Low fuel indicator color", + "sunlight": false, } ] }, diff --git a/src/pkjs/customClay.js b/src/pkjs/customClay.js index 022343b..e4addea 100644 --- a/src/pkjs/customClay.js +++ b/src/pkjs/customClay.js @@ -13,6 +13,7 @@ module.exports = function (minified) { clayConfig.getItemById('custom_color_mg_bars').set('555555'); clayConfig.getItemById('custom_color_mg_time').set('555555'); clayConfig.getItemById('custom_color_fg').set('ff0000'); + clayConfig.getItemById('custom_color_low_fuel').set('ffaa00'); break default: clayConfig.getItemById('custom_color_led').set('ffffff'); @@ -32,6 +33,7 @@ module.exports = function (minified) { clayConfig.getItemById('custom_color_mg_bars').show(); clayConfig.getItemById('custom_color_mg_time').show(); clayConfig.getItemById('custom_color_fg').show(); + clayConfig.getItemById('custom_color_low_fuel').show(); } else { setColorsToPreset(); clayConfig.getItemById('color_preset_selector').show(); @@ -40,6 +42,7 @@ module.exports = function (minified) { clayConfig.getItemById('custom_color_mg_bars').hide(); clayConfig.getItemById('custom_color_mg_time').hide(); clayConfig.getItemById('custom_color_fg').hide(); + clayConfig.getItemById('custom_color_low_fuel').hide(); } }