From 563cf986d608c5540a56e068142039835b0f804b Mon Sep 17 00:00:00 2001 From: Patrik Burleson Date: Thu, 8 Sep 2022 07:31:57 +0200 Subject: [PATCH] change update the Battery info --- .../scenes/desktop_settings_scene_start.c | 1 + applications/power/power_service/power.c | 18 ++++++++++++------ 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/applications/desktop/desktop_settings/scenes/desktop_settings_scene_start.c b/applications/desktop/desktop_settings/scenes/desktop_settings_scene_start.c index e1a926793..13aca3151 100644 --- a/applications/desktop/desktop_settings/scenes/desktop_settings_scene_start.c +++ b/applications/desktop/desktop_settings/scenes/desktop_settings_scene_start.c @@ -41,6 +41,7 @@ const uint32_t displayBatteryPercentage_value[BATTERY_VIEW_COUNT] = {0, 1, 2, 3, static void desktop_settings_scene_start_var_list_enter_callback(void* context, uint32_t index) { DesktopSettingsApp* app = context; view_dispatcher_send_custom_event(app->view_dispatcher, index); + } static void desktop_settings_scene_start_battery_view_changed(VariableItem* item) { diff --git a/applications/power/power_service/power.c b/applications/power/power_service/power.c index bf8524e82..83c666434 100644 --- a/applications/power/power_service/power.c +++ b/applications/power/power_service/power.c @@ -171,11 +171,6 @@ static void power_check_charging_state(Power* power) { static bool power_update_info(Power* power) { PowerInfo info; - - DesktopSettings* settings = malloc(sizeof(DesktopSettings)); - LOAD_DESKTOP_SETTINGS(settings); - power->displayBatteryPercentage = settings->displayBatteryPercentage; - free(settings); info.gauge_is_ok = furi_hal_power_gauge_is_ok(); info.charge = furi_hal_power_get_pct(); @@ -256,6 +251,11 @@ int32_t power_srv(void* p) { Power* power = power_alloc(); power_update_info(power); furi_record_create(RECORD_POWER, power); + + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + LOAD_DESKTOP_SETTINGS(settings); + power->displayBatteryPercentage = settings->displayBatteryPercentage; + free(settings); while(1) { // Update data from gauge and charger @@ -271,7 +271,13 @@ int32_t power_srv(void* p) { power_check_battery_level_change(power); // Update battery view port - if(need_refresh) view_port_update(power->battery_view_port); + if(need_refresh) { + DesktopSettings* settings = malloc(sizeof(DesktopSettings)); + LOAD_DESKTOP_SETTINGS(settings); + power->displayBatteryPercentage = settings->displayBatteryPercentage; + free(settings); + view_port_update(power->battery_view_port); + } // Check OTG status and disable it in case of fault if(furi_hal_power_is_otg_enabled()) {