dashboard: add setup keyboard done handling

This commit is contained in:
2026-07-02 00:54:46 -06:00
parent 9371171ebb
commit 2e4fb4ad6c
@@ -1225,6 +1225,18 @@ static void save_dashboard_connection_config(const String &ssid, const String &p
dashboard_configured = cargo_wifi_ssid.length() > 0;
}
static void setup_keyboard_event_cb(lv_event_t *event)
{
lv_event_code_t code = lv_event_get_code(event);
if (code == LV_EVENT_READY || code == LV_EVENT_CANCEL) {
if (setup_keyboard != nullptr) {
lv_keyboard_set_textarea(setup_keyboard, nullptr);
lv_obj_add_flag(setup_keyboard, LV_OBJ_FLAG_HIDDEN);
}
}
}
static void setup_textarea_event_cb(lv_event_t *event)
{
lv_event_code_t code = lv_event_get_code(event);
@@ -1264,6 +1276,11 @@ static void setup_save_event_cb(lv_event_t *event)
return;
}
if (setup_keyboard != nullptr) {
lv_keyboard_set_textarea(setup_keyboard, nullptr);
lv_obj_add_flag(setup_keyboard, LV_OBJ_FLAG_HIDDEN);
}
String ssid = lv_textarea_get_text(setup_ssid_textarea);
String password = lv_textarea_get_text(setup_password_textarea);
String api_base = lv_textarea_get_text(setup_api_textarea);
@@ -1305,6 +1322,11 @@ static void setup_reset_event_cb(lv_event_t *event)
return;
}
if (setup_keyboard != nullptr) {
lv_keyboard_set_textarea(setup_keyboard, nullptr);
lv_obj_add_flag(setup_keyboard, LV_OBJ_FLAG_HIDDEN);
}
dashboard_preferences.clear();
cargo_wifi_ssid = "";
cargo_wifi_password = "";
@@ -1369,9 +1391,18 @@ static void show_dashboard_setup_screen()
lv_label_set_long_mode(setup_status_label, LV_LABEL_LONG_WRAP);
lv_obj_align(setup_status_label, LV_ALIGN_TOP_LEFT, 548, 410);
lv_obj_t *done_button = lv_btn_create(screen);
lv_obj_set_size(done_button, 180, 48);
lv_obj_align(done_button, LV_ALIGN_BOTTOM_RIGHT, -32, -188);
lv_obj_add_event_cb(done_button, setup_keyboard_event_cb, LV_EVENT_CLICKED, nullptr);
lv_obj_t *done_label = lv_label_create(done_button);
lv_label_set_text(done_label, "Done");
lv_obj_center(done_label);
setup_keyboard = lv_keyboard_create(screen);
lv_obj_set_size(setup_keyboard, 1024, 180);
lv_obj_align(setup_keyboard, LV_ALIGN_BOTTOM_MID, 0, 0);
lv_obj_add_event_cb(setup_keyboard, setup_keyboard_event_cb, LV_EVENT_ALL, nullptr);
lv_obj_add_flag(setup_keyboard, LV_OBJ_FLAG_HIDDEN);
}