Fix menu index navigation in esp quick flash

This commit is contained in:
Willy-JL
2023-08-12 01:50:42 +02:00
parent fce86c494f
commit 5e710916d6

View File

@@ -27,6 +27,9 @@ void esp_flasher_scene_quick_on_enter(void* context) {
switch(state) { switch(state) {
case QuickStart: case QuickStart:
case QuickBlackmagic:
case QuickEvilportal:
case QuickMarauder:
submenu_set_header(submenu, "Flash Firmware:"); submenu_set_header(submenu, "Flash Firmware:");
submenu_add_item( submenu_add_item(
submenu, "Black Magic", QuickBlackmagic, esp_flasher_scene_quick_submenu_callback, app); submenu, "Black Magic", QuickBlackmagic, esp_flasher_scene_quick_submenu_callback, app);
@@ -35,7 +38,7 @@ void esp_flasher_scene_quick_on_enter(void* context) {
submenu_add_item( submenu_add_item(
submenu, "Marauder", QuickMarauder, esp_flasher_scene_quick_submenu_callback, app); submenu, "Marauder", QuickMarauder, esp_flasher_scene_quick_submenu_callback, app);
break; break;
case QuickBlackmagic: case QuickBlackmagicWifidev:
submenu_set_header(submenu, "Flash Black Magic To:"); submenu_set_header(submenu, "Flash Black Magic To:");
submenu_add_item( submenu_add_item(
submenu, submenu,
@@ -44,7 +47,8 @@ void esp_flasher_scene_quick_on_enter(void* context) {
esp_flasher_scene_quick_submenu_callback, esp_flasher_scene_quick_submenu_callback,
app); app);
break; break;
case QuickEvilportal: case QuickEvilportalWifidevS2:
case QuickEvilportalDevproWroom:
submenu_set_header(submenu, "Flash Evil Portal To:"); submenu_set_header(submenu, "Flash Evil Portal To:");
submenu_add_item( submenu_add_item(
submenu, submenu,
@@ -59,7 +63,8 @@ void esp_flasher_scene_quick_on_enter(void* context) {
esp_flasher_scene_quick_submenu_callback, esp_flasher_scene_quick_submenu_callback,
app); app);
break; break;
case QuickMarauder: case QuickMarauderWifidevS2:
case QuickMarauderDevproWroom:
submenu_set_header(submenu, "Flash Marauder To:"); submenu_set_header(submenu, "Flash Marauder To:");
submenu_add_item( submenu_add_item(
submenu, submenu,
@@ -78,6 +83,8 @@ void esp_flasher_scene_quick_on_enter(void* context) {
break; break;
} }
submenu_set_selected_item(submenu, state);
view_dispatcher_switch_to_view(app->view_dispatcher, EspFlasherAppViewSubmenu); view_dispatcher_switch_to_view(app->view_dispatcher, EspFlasherAppViewSubmenu);
} }
@@ -101,7 +108,8 @@ bool esp_flasher_scene_quick_on_event(void* context, SceneManagerEvent event) {
case QuickBlackmagic: case QuickBlackmagic:
case QuickEvilportal: case QuickEvilportal:
case QuickMarauder: case QuickMarauder:
scene_manager_set_scene_state(app->scene_manager, EspFlasherSceneQuick, event.event); scene_manager_set_scene_state(
app->scene_manager, EspFlasherSceneQuick, event.event + 1);
scene_manager_next_scene(app->scene_manager, EspFlasherSceneQuick); scene_manager_next_scene(app->scene_manager, EspFlasherSceneQuick);
flash = false; flash = false;
break; break;
@@ -141,6 +149,7 @@ bool esp_flasher_scene_quick_on_event(void* context, SceneManagerEvent event) {
} }
if(flash) { if(flash) {
scene_manager_set_scene_state(app->scene_manager, EspFlasherSceneQuick, event.event);
memset(app->selected_flash_options, 0, sizeof(app->selected_flash_options)); memset(app->selected_flash_options, 0, sizeof(app->selected_flash_options));
app->bin_file_path_boot[0] = '\0'; app->bin_file_path_boot[0] = '\0';
app->bin_file_path_part[0] = '\0'; app->bin_file_path_part[0] = '\0';
@@ -176,7 +185,14 @@ bool esp_flasher_scene_quick_on_event(void* context, SceneManagerEvent event) {
scene_manager_next_scene(app->scene_manager, EspFlasherSceneConsoleOutput); scene_manager_next_scene(app->scene_manager, EspFlasherSceneConsoleOutput);
} }
} else if(event.type == SceneManagerEventTypeBack) { } else if(event.type == SceneManagerEventTypeBack) {
scene_manager_set_scene_state(app->scene_manager, EspFlasherSceneQuick, QuickStart); uint32_t state = scene_manager_get_scene_state(app->scene_manager, EspFlasherSceneQuick);
if(state > QuickMarauder)
state = QuickMarauder;
else if(state > QuickEvilportal)
state = QuickEvilportal;
else if(state > QuickBlackmagic)
state = QuickBlackmagic;
scene_manager_set_scene_state(app->scene_manager, EspFlasherSceneQuick, state);
} }
return consumed; return consumed;