From 26cceb64730c3e6fc7b0b48e895cc220d1f50c4e Mon Sep 17 00:00:00 2001 From: zxkmm Date: Sat, 5 Apr 2025 17:09:55 +0800 Subject: [PATCH] _ --- firmware/application/apps/ui_settings.cpp | 5 ++++- firmware/application/apps/ui_settings.hpp | 17 +++++++++++++---- .../external/debug_pmem/ui_debug_pmem.cpp | 1 + firmware/application/ui_navigation.cpp | 2 +- firmware/common/portapack_persistent_memory.cpp | 8 +++++++- firmware/common/portapack_persistent_memory.hpp | 3 +++ 6 files changed, 29 insertions(+), 7 deletions(-) diff --git a/firmware/application/apps/ui_settings.cpp b/firmware/application/apps/ui_settings.cpp index 16c9171f2..28835a84a 100644 --- a/firmware/application/apps/ui_settings.cpp +++ b/firmware/application/apps/ui_settings.cpp @@ -1044,12 +1044,14 @@ SetBatteryView::SetBatteryView(NavigationView& nav) { add_children({&labels, &button_save, &button_cancel, - &checkbox_overridebatt}); + &checkbox_overridebatt, + &checkbox_battery_charge_hint}); if (i2cdev::I2CDevManager::get_dev_by_model(I2C_DEVMDL::I2CDEVMDL_MAX17055)) add_children({&button_reset, &labels2}); button_save.on_select = [&nav, this](Button&) { pmem::set_ui_override_batt_calc(checkbox_overridebatt.value()); + pmem::set_ui_battery_charge_hint(checkbox_battery_charge_hint.value()); battery::BatteryManagement::set_calc_override(checkbox_overridebatt.value()); send_system_refresh(); nav.pop(); @@ -1064,6 +1066,7 @@ SetBatteryView::SetBatteryView(NavigationView& nav) { }; checkbox_overridebatt.set_value(pmem::ui_override_batt_calc()); + checkbox_battery_charge_hint.set_value(pmem::ui_battery_charge_hint()); button_cancel.on_select = [&nav, this](Button&) { nav.pop(); diff --git a/firmware/application/apps/ui_settings.hpp b/firmware/application/apps/ui_settings.hpp index 9cb4f24b7..56011f164 100644 --- a/firmware/application/apps/ui_settings.hpp +++ b/firmware/application/apps/ui_settings.hpp @@ -978,9 +978,13 @@ class SetBatteryView : public View { int32_t selected = 0; Labels labels{ {{1 * 8, 1 * 16}, "Override batt calculation", Theme::getInstance()->fg_light->foreground}, - {{1 * 8, 2 * 16}, "method to voltage based", Theme::getInstance()->fg_light->foreground}}; - Labels labels2{ - {{1 * 8, 6 * 16}, "Reset IC's learned params.", Theme::getInstance()->fg_light->foreground}}; + {{1 * 8, 2 * 16}, "method to voltage based", Theme::getInstance()->fg_light->foreground}, + /**/ + {{1 * 8, 6 * 16}, "Display a hint to remind you", Theme::getInstance()->fg_light->foreground}, + {{1 * 8, 7 * 16}, "when you charge", Theme::getInstance()->fg_light->foreground}}; + + Labels labels2{{{1 * 8, 11 * 16}, "Reset IC's learned params.", Theme::getInstance()->fg_light->foreground}}; + Button button_save{ {2 * 8, 16 * 16, 12 * 8, 32}, "Save"}; @@ -990,13 +994,18 @@ class SetBatteryView : public View { 23, "Override"}; + Checkbox checkbox_battery_charge_hint{ + {2 * 8, 9 * 16}, + 23, + "Charge hint"}; + Button button_cancel{ {16 * 8, 16 * 16, 12 * 8, 32}, "Cancel", }; Button button_reset{ - {2 * 8, 8 * 16, 12 * 8, 32}, + {2 * 8, 13 * 16, 12 * 8, 32}, "Reset", }; }; diff --git a/firmware/application/external/debug_pmem/ui_debug_pmem.cpp b/firmware/application/external/debug_pmem/ui_debug_pmem.cpp index 68c84d65f..60960fc24 100644 --- a/firmware/application/external/debug_pmem/ui_debug_pmem.cpp +++ b/firmware/application/external/debug_pmem/ui_debug_pmem.cpp @@ -128,6 +128,7 @@ bool DebugDumpView::debug_dump_func() { pmem_dump_file.write_line("ui_config2 button_repeat_delay: " + to_string_dec_uint(ui_button_repeat_delay())); pmem_dump_file.write_line("ui_config2 button_repeat_speed: " + to_string_dec_uint(ui_button_repeat_speed())); pmem_dump_file.write_line("ui_config2 button_long_press_delay: " + to_string_dec_uint(ui_button_long_press_delay())); + pmem_dump_file.write_line("ui_config2 battery_charge_hint: " + to_string_dec_uint(ui_battery_charge_hint())); // misc_config bits pmem_dump_file.write_line("misc_config config_audio_mute: " + to_string_dec_int(config_audio_mute())); diff --git a/firmware/application/ui_navigation.cpp b/firmware/application/ui_navigation.cpp index 1eb5f2da9..4ef180bc9 100644 --- a/firmware/application/ui_navigation.cpp +++ b/firmware/application/ui_navigation.cpp @@ -343,7 +343,7 @@ void SystemStatusView::on_battery_data(const BatteryStateMessage* msg) { // Check if charging state changed to charging static bool was_charging = false; - if (msg->on_charger && !was_charging) { + if (msg->on_charger && !was_charging && pmem::ui_battery_charge_hint()) { // Only show charging modal when transitioning to charging state nav_.display_modal( "CHARGING", diff --git a/firmware/common/portapack_persistent_memory.cpp b/firmware/common/portapack_persistent_memory.cpp index 890949394..8060b81cb 100644 --- a/firmware/common/portapack_persistent_memory.cpp +++ b/firmware/common/portapack_persistent_memory.cpp @@ -137,9 +137,9 @@ struct ui_config2_t { bool button_repeat_delay : 1; bool button_repeat_speed : 1; bool button_long_press_delay : 1; + bool battery_charge_hint : 1; uint8_t theme_id; - uint8_t PLACEHOLDER_3; }; static_assert(sizeof(ui_config2_t) == sizeof(uint32_t)); @@ -981,6 +981,9 @@ bool ui_button_repeat_speed() { bool ui_button_long_press_delay() { return data->ui_config2.button_long_press_delay; } +bool ui_battery_charge_hint() { + return data->ui_config2.battery_charge_hint; +} void set_ui_hide_speaker(bool v) { data->ui_config2.hide_speaker = v; @@ -1035,6 +1038,9 @@ void set_ui_button_repeat_speed(bool v) { void set_ui_button_long_press_delay(bool v) { data->ui_config2.button_long_press_delay = v; } +void set_ui_battery_charge_hint(bool v) { + data->ui_config2.battery_charge_hint = v; +} /* Converter */ bool config_converter() { diff --git a/firmware/common/portapack_persistent_memory.hpp b/firmware/common/portapack_persistent_memory.hpp index 4e77466cd..0c78421d7 100644 --- a/firmware/common/portapack_persistent_memory.hpp +++ b/firmware/common/portapack_persistent_memory.hpp @@ -350,6 +350,8 @@ bool ui_override_batt_calc(); bool ui_button_repeat_delay(); bool ui_button_repeat_speed(); bool ui_button_long_press_delay(); +bool ui_battery_charge_hint(); + void set_ui_hide_speaker(bool v); void set_ui_hide_mute(bool v); void set_ui_hide_converter(bool v); @@ -367,6 +369,7 @@ void set_ui_override_batt_calc(bool v); void set_ui_button_repeat_delay(bool v); void set_ui_button_repeat_speed(bool v); void set_ui_button_long_press_delay(bool v); +void set_ui_battery_charge_hint(bool v); // sd persisting settings bool should_use_sdcard_for_pmem();