| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #include "../wifi_marauder_app_i.h"
- enum SubmenuIndex {
- SubmenuIndexRun,
- SubmenuIndexSettings,
- SubmenuIndexEditStages,
- SubmenuIndexSave,
- SubmenuIndexDelete
- };
- void wifi_marauder_scene_script_options_save_script(WifiMarauderApp* app) {
- char script_path[256];
- snprintf(
- script_path,
- sizeof(script_path),
- "%s/%s.json",
- MARAUDER_APP_FOLDER_SCRIPTS,
- app->script->name);
- wifi_marauder_script_save_json(app->storage, script_path, app->script);
- DialogMessage* message = dialog_message_alloc();
- dialog_message_set_text(message, "Saved!", 5, 7, AlignLeft, AlignTop);
- dialog_message_set_icon(message, &I_DolphinDone_80x58, 36, 5);
- dialog_message_set_buttons(message, NULL, "Ok", NULL);
- dialog_message_show(app->dialogs, message);
- dialog_message_free(message);
- }
- static void wifi_marauder_scene_script_options_callback(void* context, uint32_t index) {
- WifiMarauderApp* app = context;
- switch(index) {
- case SubmenuIndexRun:
- scene_manager_set_scene_state(app->scene_manager, WifiMarauderSceneScriptOptions, index);
- scene_manager_next_scene(app->scene_manager, WifiMarauderSceneConsoleOutput);
- break;
- case SubmenuIndexSettings:
- scene_manager_set_scene_state(app->scene_manager, WifiMarauderSceneScriptOptions, index);
- scene_manager_next_scene(app->scene_manager, WifiMarauderSceneScriptSettings);
- break;
- case SubmenuIndexEditStages:
- scene_manager_set_scene_state(app->scene_manager, WifiMarauderSceneScriptOptions, index);
- scene_manager_next_scene(app->scene_manager, WifiMarauderSceneScriptEdit);
- break;
- case SubmenuIndexSave:
- wifi_marauder_scene_script_options_save_script(app);
- break;
- case SubmenuIndexDelete:
- scene_manager_set_scene_state(app->scene_manager, WifiMarauderSceneScriptOptions, index);
- scene_manager_next_scene(app->scene_manager, WifiMarauderSceneScriptConfirmDelete);
- break;
- }
- }
- void wifi_marauder_scene_script_options_on_enter(void* context) {
- WifiMarauderApp* app = context;
- // If returning after confirming script deletion
- if(app->script == NULL) {
- scene_manager_previous_scene(app->scene_manager);
- return;
- }
- Submenu* submenu = app->submenu;
- submenu_set_header(submenu, app->script->name);
- submenu_add_item(
- submenu, "[>] RUN", SubmenuIndexRun, wifi_marauder_scene_script_options_callback, app);
- submenu_add_item(
- submenu,
- "[S] SETTINGS",
- SubmenuIndexSettings,
- wifi_marauder_scene_script_options_callback,
- app);
- submenu_add_item(
- submenu,
- "[+] EDIT STAGES",
- SubmenuIndexEditStages,
- wifi_marauder_scene_script_options_callback,
- app);
- submenu_add_item(
- submenu, "[*] SAVE", SubmenuIndexSave, wifi_marauder_scene_script_options_callback, app);
- submenu_add_item(
- submenu,
- "[X] DELETE",
- SubmenuIndexDelete,
- wifi_marauder_scene_script_options_callback,
- app);
- submenu_set_selected_item(
- submenu,
- scene_manager_get_scene_state(app->scene_manager, WifiMarauderSceneScriptOptions));
- view_dispatcher_switch_to_view(app->view_dispatcher, WifiMarauderAppViewSubmenu);
- }
- bool wifi_marauder_scene_script_options_on_event(void* context, SceneManagerEvent event) {
- WifiMarauderApp* app = context;
- bool consumed = false;
- if(event.type == SceneManagerEventTypeBack) {
- wifi_marauder_script_free(app->script);
- app->script = NULL;
- }
- return consumed;
- }
- void wifi_marauder_scene_script_options_on_exit(void* context) {
- WifiMarauderApp* app = context;
- submenu_reset(app->submenu);
- }
|