diff --git a/library.json b/library.json index 9ac38de..56a9c03 100644 --- a/library.json +++ b/library.json @@ -21,7 +21,7 @@ "headers": ["DeviceScreen.h", "SharedQueue.h"], "dependencies": { "ArduinoThread": "https://github.com/meshtastic/ArduinoThread.git#7c3ee9e1951551b949763b1f5280f8db1fa4068d", - "lvgl/lvgl": "https://github.com/lvgl/lvgl#4f2fd4b54950d5efcee9070fbb92d0005236d2ee", + "lvgl/lvgl": "https://github.com/lvgl/lvgl#9c043167685fc08fbcd30ddf2c285ea1089be82d", "greiman/SdFat": "https://github.com/mverch67/SdFat#e25bebdc41523eaee6aef164a97df25f7ee59494", "nanopb/Nanopb": "0.4.91" }, diff --git a/source/graphics/TFT/TFTView_320x240.cpp b/source/graphics/TFT/TFTView_320x240.cpp index dd877ef..1ee8196 100644 --- a/source/graphics/TFT/TFTView_320x240.cpp +++ b/source/graphics/TFT/TFTView_320x240.cpp @@ -240,8 +240,8 @@ bool TFTView_320x240::setupUIConfig(const meshtastic_DeviceUIConfig &uiconfig) lv_obj_set_state(objects.nodes_filter_unknown_switch, LV_STATE_CHECKED, filter.unknown_switch); lv_obj_set_state(objects.nodes_filter_offline_switch, LV_STATE_CHECKED, filter.offline_switch); lv_obj_set_state(objects.nodes_filter_public_key_switch, LV_STATE_CHECKED, filter.public_key_switch); - // lv_dropdown_set_selected(objects.nodes_filter_channel_dropdown, filter.channel); - lv_dropdown_set_selected(objects.nodes_filter_hops_dropdown, filter.hops_away); + // lv_dropdown_set_selected(objects.nodes_filter_channel_dropdown, filter.channel, LV_ANIM_OFF); + lv_dropdown_set_selected(objects.nodes_filter_hops_dropdown, filter.hops_away, LV_ANIM_OFF); // lv_obj_set_state(objects.nodes_filter_mqtt_switch, LV_STATE_CHECKED, filter.mqtt_switch); lv_obj_set_state(objects.nodes_filter_position_switch, LV_STATE_CHECKED, filter.position_switch); lv_textarea_set_text(objects.nodes_filter_name_area, filter.node_name); @@ -960,7 +960,7 @@ void TFTView_320x240::ui_event_NodeButton(lv_event_t *e) THIS->chooseNodeSignalScanner = false; ui_event_signal_scanner(NULL); // restore previous filter - lv_dropdown_set_selected(objects.nodes_filter_hops_dropdown, THIS->selectedHops); + lv_dropdown_set_selected(objects.nodes_filter_hops_dropdown, THIS->selectedHops, LV_ANIM_OFF); THIS->updateNodesFiltered(true); THIS->updateNodesStatus(); } else if (THIS->chooseNodeTraceRoute) { @@ -1207,8 +1207,8 @@ void TFTView_320x240::ui_event_OnlineNodesButton(lv_event_t *e) lv_obj_set_state(objects.nodes_filter_offline_switch, LV_STATE_CHECKED, false); lv_obj_set_state(objects.nodes_filter_public_key_switch, LV_STATE_CHECKED, false); lv_obj_set_state(objects.nodes_filter_position_switch, LV_STATE_CHECKED, false); - lv_dropdown_set_selected(objects.nodes_filter_channel_dropdown, 0); - lv_dropdown_set_selected(objects.nodes_filter_hops_dropdown, 0); + lv_dropdown_set_selected(objects.nodes_filter_channel_dropdown, 0, LV_ANIM_OFF); + lv_dropdown_set_selected(objects.nodes_filter_hops_dropdown, 0, LV_ANIM_OFF); lv_textarea_set_text(objects.nodes_filter_name_area, ""); THIS->ui_set_active(objects.nodes_button, objects.nodes_panel, objects.top_nodes_panel); THIS->updateNodesFiltered(true); @@ -1539,7 +1539,7 @@ void TFTView_320x240::ui_event_role_button(lv_event_t *e) { lv_event_code_t event_code = lv_event_get_code(e); if (event_code == LV_EVENT_CLICKED && THIS->activeSettings == eNone && THIS->db.config.has_device) { - lv_dropdown_set_selected(objects.settings_device_role_dropdown, THIS->role2val(THIS->db.config.device.role)); + lv_dropdown_set_selected(objects.settings_device_role_dropdown, THIS->role2val(THIS->db.config.device.role), LV_ANIM_OFF); lv_obj_clear_flag(objects.settings_device_role_panel, LV_OBJ_FLAG_HIDDEN); lv_group_focus_obj(objects.settings_device_role_dropdown); THIS->disablePanel(objects.controller_panel); @@ -1552,7 +1552,7 @@ void TFTView_320x240::ui_event_region_button(lv_event_t *e) { lv_event_code_t event_code = lv_event_get_code(e); if (event_code == LV_EVENT_CLICKED && THIS->activeSettings == eNone && THIS->db.config.has_lora) { - lv_dropdown_set_selected(objects.settings_region_dropdown, THIS->db.config.lora.region - 1); + lv_dropdown_set_selected(objects.settings_region_dropdown, THIS->db.config.lora.region - 1, LV_ANIM_OFF); lv_obj_clear_flag(objects.settings_region_panel, LV_OBJ_FLAG_HIDDEN); lv_group_focus_obj(objects.settings_region_dropdown); THIS->disablePanel(objects.controller_panel); @@ -1566,7 +1566,7 @@ void TFTView_320x240::ui_event_preset_button(lv_event_t *e) lv_event_code_t event_code = lv_event_get_code(e); if (event_code == LV_EVENT_CLICKED && THIS->activeSettings == eNone && THIS->db.config.has_lora) { THIS->activeSettings = eModemPreset; - lv_dropdown_set_selected(objects.settings_modem_preset_dropdown, THIS->db.config.lora.modem_preset); + lv_dropdown_set_selected(objects.settings_modem_preset_dropdown, THIS->db.config.lora.modem_preset, LV_ANIM_OFF); char buf[60]; sprintf(buf, _("FrequencySlot: %d (%g MHz)"), THIS->db.config.lora.channel_num, @@ -1602,7 +1602,7 @@ void TFTView_320x240::ui_event_language_button(lv_event_t *e) { lv_event_code_t event_code = lv_event_get_code(e); if (event_code == LV_EVENT_CLICKED && THIS->activeSettings == eNone) { - lv_dropdown_set_selected(objects.settings_language_dropdown, THIS->language2val(THIS->db.uiConfig.language)); + lv_dropdown_set_selected(objects.settings_language_dropdown, THIS->language2val(THIS->db.uiConfig.language), LV_ANIM_OFF); lv_obj_clear_flag(objects.settings_language_panel, LV_OBJ_FLAG_HIDDEN); lv_group_focus_obj(objects.settings_language_dropdown); THIS->disablePanel(objects.controller_panel); @@ -1672,7 +1672,7 @@ void TFTView_320x240::ui_event_theme_button(lv_event_t *e) { lv_event_code_t event_code = lv_event_get_code(e); if (event_code == LV_EVENT_CLICKED && THIS->activeSettings == eNone) { - lv_dropdown_set_selected(objects.settings_theme_dropdown, THIS->db.uiConfig.theme); + lv_dropdown_set_selected(objects.settings_theme_dropdown, THIS->db.uiConfig.theme, LV_ANIM_OFF); lv_obj_clear_flag(objects.settings_theme_panel, LV_OBJ_FLAG_HIDDEN); lv_group_focus_obj(objects.settings_theme_dropdown); THIS->disablePanel(objects.controller_panel); @@ -1747,7 +1747,7 @@ void TFTView_320x240::ui_event_input_button(lv_event_t *e) lv_dropdown_set_options(objects.settings_mouse_input_dropdown, ptr_dropdown.c_str()); std::string current_ptr = THIS->inputdriver->getCurrentPointerDevice(); uint32_t ptrOption = lv_dropdown_get_option_index(objects.settings_mouse_input_dropdown, current_ptr.c_str()); - lv_dropdown_set_selected(objects.settings_mouse_input_dropdown, ptrOption); + lv_dropdown_set_selected(objects.settings_mouse_input_dropdown, ptrOption, LV_ANIM_OFF); std::vector kbd_events = THIS->inputdriver->getKeyboardDevices(); std::string kbd_dropdown = _("none"); @@ -1757,7 +1757,7 @@ void TFTView_320x240::ui_event_input_button(lv_event_t *e) lv_dropdown_set_options(objects.settings_keyboard_input_dropdown, kbd_dropdown.c_str()); std::string current_kbd = THIS->inputdriver->getCurrentKeyboardDevice(); uint32_t kbdOption = lv_dropdown_get_option_index(objects.settings_keyboard_input_dropdown, current_kbd.c_str()); - lv_dropdown_set_selected(objects.settings_keyboard_input_dropdown, kbdOption); + lv_dropdown_set_selected(objects.settings_keyboard_input_dropdown, kbdOption, LV_ANIM_OFF); lv_dropdown_get_selected_str(objects.settings_keyboard_input_dropdown, THIS->old_val1_scratch, sizeof(old_val1_scratch)); lv_dropdown_get_selected_str(objects.settings_mouse_input_dropdown, THIS->old_val2_scratch, sizeof(old_val2_scratch)); @@ -1788,7 +1788,7 @@ void TFTView_320x240::ui_event_alert_button(lv_event_t *e) } } - lv_dropdown_set_selected(objects.settings_ringtone_dropdown, THIS->db.uiConfig.ring_tone_id - 1); + lv_dropdown_set_selected(objects.settings_ringtone_dropdown, THIS->db.uiConfig.ring_tone_id - 1, LV_ANIM_OFF); lv_obj_clear_flag(objects.settings_alert_buzzer_panel, LV_OBJ_FLAG_HIDDEN); lv_group_focus_obj(objects.settings_alert_buzzer_switch); THIS->disablePanel(objects.controller_panel); @@ -2348,7 +2348,7 @@ void TFTView_320x240::loadMap(void) for (auto it : mapStyles) { lv_dropdown_add_option(objects.map_style_dropdown, it.c_str(), pos); if (it == db.uiConfig.map_data.style) { - lv_dropdown_set_selected(objects.map_style_dropdown, pos); + lv_dropdown_set_selected(objects.map_style_dropdown, pos, LV_ANIM_OFF); MapTileSettings::setTileStyle(db.uiConfig.map_data.style); savedStyleOK = true; } @@ -2357,7 +2357,7 @@ void TFTView_320x240::loadMap(void) if (!savedStyleOK) { // no such style on SD, pick first one we found char style[20]; - lv_dropdown_set_selected(objects.map_style_dropdown, 0); + lv_dropdown_set_selected(objects.map_style_dropdown, 0, LV_ANIM_OFF); lv_dropdown_get_selected_str(objects.map_style_dropdown, style, sizeof(style)); MapTileSettings::setTileStyle(style); } @@ -2495,7 +2495,7 @@ void TFTView_320x240::ui_event_signal_scanner_node(lv_event_t *e) { THIS->chooseNodeSignalScanner = true; THIS->selectedHops = lv_dropdown_get_selected(objects.nodes_filter_hops_dropdown); - lv_dropdown_set_selected(objects.nodes_filter_hops_dropdown, 7); // 0 hops away + lv_dropdown_set_selected(objects.nodes_filter_hops_dropdown, 7, LV_ANIM_OFF); // 0 hops away THIS->ui_set_active(objects.nodes_button, objects.nodes_panel, objects.top_nodes_panel); THIS->updateNodesFiltered(true); THIS->updateNodesStatus(); @@ -3026,7 +3026,7 @@ void TFTView_320x240::ui_event_statistics_table(lv_event_t *e) void TFTView_320x240::requestSetup(void) { ui_set_active(objects.settings_button, objects.initial_setup_panel, objects.top_setup_panel); - lv_dropdown_set_selected(objects.setup_region_dropdown, 0); + lv_dropdown_set_selected(objects.setup_region_dropdown, 0, LV_ANIM_OFF); lv_obj_clear_flag(objects.initial_setup_panel, LV_OBJ_FLAG_HIDDEN); lv_group_focus_obj(objects.setup_region_dropdown); THIS->disablePanel(objects.controller_panel); @@ -3343,7 +3343,7 @@ void TFTView_320x240::setLocale(meshtastic_Language lang) void TFTView_320x240::setLanguage(meshtastic_Language lang) { char buf1[20], buf2[40]; - lv_dropdown_set_selected(objects.settings_language_dropdown, language2val(lang)); + lv_dropdown_set_selected(objects.settings_language_dropdown, language2val(lang), LV_ANIM_OFF); lv_dropdown_get_selected_str(objects.settings_language_dropdown, buf1, sizeof(buf1)); lv_snprintf(buf2, sizeof(buf2), _("Language: %s"), buf1); lv_label_set_text(objects.basic_settings_language_label, buf2); @@ -3380,7 +3380,7 @@ void TFTView_320x240::setBrightness(uint32_t brightness) void TFTView_320x240::setTheme(uint32_t value) { char buf1[30], buf2[30]; - lv_dropdown_set_selected(objects.settings_theme_dropdown, value); + lv_dropdown_set_selected(objects.settings_theme_dropdown, value, LV_ANIM_OFF); lv_dropdown_get_selected_str(objects.settings_theme_dropdown, buf1, sizeof(buf1)); lv_snprintf(buf2, sizeof(buf2), _("Theme: %s"), buf1); lv_label_set_text(objects.basic_settings_theme_label, buf2); @@ -3477,7 +3477,7 @@ void TFTView_320x240::ui_event_ok(lv_event_t *e) uint32_t numChannels = LoRaPresets::getNumChannels(region, THIS->db.config.lora.modem_preset); // if (numChannels == 0) { // // region not possible for selected preset, revert - // lv_dropdown_set_selected(objects.settings_region_dropdown, THIS->db.config.lora.region - 1); + // lv_dropdown_set_selected(objects.settings_region_dropdown, THIS->db.config.lora.region - 1, LV_ANIM_OFF); // return; // } @@ -3562,7 +3562,7 @@ void TFTView_320x240::ui_event_ok(lv_event_t *e) uint32_t numChannels = LoRaPresets::getNumChannels(region, THIS->db.config.lora.modem_preset); if (numChannels == 0) { // region not possible for selected preset, revert - lv_dropdown_set_selected(objects.settings_region_dropdown, THIS->db.config.lora.region - 1); + lv_dropdown_set_selected(objects.settings_region_dropdown, THIS->db.config.lora.region - 1, LV_ANIM_OFF); return; } @@ -4025,7 +4025,7 @@ void TFTView_320x240::ui_event_modem_preset_dropdown(lv_event_t *e) uint32_t numChannels = LoRaPresets::getNumChannels(THIS->db.config.lora.region, preset); if (preset == meshtastic_Config_LoRaConfig_ModemPreset_VERY_LONG_SLOW || numChannels == 0) { // preset deprecated or not possible for this region, revert - lv_dropdown_set_selected(dropdown, THIS->db.config.lora.modem_preset); + lv_dropdown_set_selected(dropdown, THIS->db.config.lora.modem_preset, LV_ANIM_OFF); numChannels = LoRaPresets::getNumChannels(THIS->db.config.lora.region, THIS->db.config.lora.modem_preset); return; } @@ -4420,7 +4420,7 @@ void TFTView_320x240::updateNode(uint32_t nodeNum, uint8_t ch, const char *userS lv_label_set_text(objects.basic_settings_user_label, buf); char buf1[30], buf2[40]; - lv_dropdown_set_selected(objects.settings_device_role_dropdown, role2val(meshtastic_Config_DeviceConfig_Role(role))); + lv_dropdown_set_selected(objects.settings_device_role_dropdown, role2val(meshtastic_Config_DeviceConfig_Role(role)), LV_ANIM_OFF); lv_dropdown_get_selected_str(objects.settings_device_role_dropdown, buf1, sizeof(buf1)); lv_snprintf(buf2, sizeof(buf2), _("Device Role: %s"), buf1); lv_label_set_text(objects.basic_settings_role_label, buf2); @@ -5473,7 +5473,7 @@ void TFTView_320x240::updateDeviceConfig(const meshtastic_Config_DeviceConfig &c db.config.has_device = true; char buf1[30], buf2[40]; - lv_dropdown_set_selected(objects.settings_device_role_dropdown, role2val(cfg.role)); + lv_dropdown_set_selected(objects.settings_device_role_dropdown, role2val(cfg.role), LV_ANIM_OFF); lv_dropdown_get_selected_str(objects.settings_device_role_dropdown, buf1, sizeof(buf1)); lv_snprintf(buf2, sizeof(buf2), _("Device Role: %s"), buf1); lv_label_set_text(objects.basic_settings_role_label, buf2); @@ -5526,7 +5526,7 @@ void TFTView_320x240::updateLoRaConfig(const meshtastic_Config_LoRaConfig &cfg) lv_label_set_text(objects.basic_settings_region_label, region); char buf1[20], buf2[32]; - lv_dropdown_set_selected(objects.settings_modem_preset_dropdown, cfg.modem_preset); + lv_dropdown_set_selected(objects.settings_modem_preset_dropdown, cfg.modem_preset, LV_ANIM_OFF); lv_dropdown_get_selected_str(objects.settings_modem_preset_dropdown, buf1, sizeof(buf1)); lv_snprintf(buf2, sizeof(buf2), _("Modem Preset: %s"), buf1); lv_label_set_text(objects.basic_settings_modem_preset_label, buf2);