From 0dbe874533259ea8d31163cb34251b965d78d5c1 Mon Sep 17 00:00:00 2001 From: ClaraCrazy Date: Tue, 18 Jul 2023 01:55:23 +0200 Subject: [PATCH] Still a nightmare, but better ig --- .../external/evil_portal/evil_portal_app.c | 2 -- .../external/evil_portal/evil_portal_app_i.h | 7 ---- .../evil_portal/helpers/evil_portal_storage.c | 24 ++----------- .../evil_portal/helpers/evil_portal_storage.h | 3 +- .../scenes/evil_portal_scene_console_output.c | 35 +++++-------------- 5 files changed, 12 insertions(+), 59 deletions(-) diff --git a/applications/external/evil_portal/evil_portal_app.c b/applications/external/evil_portal/evil_portal_app.c index ee9b373d0..121533900 100644 --- a/applications/external/evil_portal/evil_portal_app.c +++ b/applications/external/evil_portal/evil_portal_app.c @@ -33,7 +33,6 @@ Evil_PortalApp* evil_portal_app_alloc() { app->portal_logs = furi_string_alloc(); app->gui = furi_record_open(RECORD_GUI); - app->dialogs = furi_record_open(RECORD_DIALOGS); app->view_dispatcher = view_dispatcher_alloc(); app->scene_manager = scene_manager_alloc(&evil_portal_scene_handlers, app); @@ -98,7 +97,6 @@ void evil_portal_app_free(Evil_PortalApp* app) { // Close records furi_record_close(RECORD_GUI); - furi_record_close(RECORD_DIALOGS); free(app); } diff --git a/applications/external/evil_portal/evil_portal_app_i.h b/applications/external/evil_portal/evil_portal_app_i.h index ff366281a..949b64ce6 100644 --- a/applications/external/evil_portal/evil_portal_app_i.h +++ b/applications/external/evil_portal/evil_portal_app_i.h @@ -11,9 +11,6 @@ #include #include -#include -#include - #define NUM_MENU_ITEMS (4) #define EVIL_PORTAL_TEXT_BOX_STORE_SIZE (4096) @@ -23,14 +20,10 @@ #define SET_AP_CMD "setap" #define RESET_CMD "reset" -#define EVIL_PORTAL_INDEX_EXTENSION ".html" -#define EVIL_PORTAL_BASE_FOLDER "/apps_data/evil_portal/" - struct Evil_PortalApp { Gui* gui; ViewDispatcher* view_dispatcher; SceneManager* scene_manager; - DialogsApp* dialogs; FuriString* portal_logs; const char* command_queue[1]; diff --git a/applications/external/evil_portal/helpers/evil_portal_storage.c b/applications/external/evil_portal/helpers/evil_portal_storage.c index f05f0a36b..b28c97afa 100644 --- a/applications/external/evil_portal/helpers/evil_portal_storage.c +++ b/applications/external/evil_portal/helpers/evil_portal_storage.c @@ -8,31 +8,15 @@ static void evil_portal_close_storage() { furi_record_close(RECORD_STORAGE); } -bool evil_portal_read_index_html(void* context) { - FuriString* file_path = furi_string_alloc(); - - DialogsFileBrowserOptions browser_options; - dialog_file_browser_set_basic_options( - &browser_options, - EVIL_PORTAL_INDEX_EXTENSION, - NULL); // TODO configure icon - browser_options.base_path = EVIL_PORTAL_BASE_FOLDER; - +void evil_portal_read_index_html(void* context) { Evil_PortalApp* app = context; - bool res = dialog_file_browser_show(app->dialogs, file_path, file_path, &browser_options); - - if(!res) { - furi_string_free(file_path); - return false; - } - Storage* storage = evil_portal_open_storage(); FileInfo fi; - if(storage_common_stat(storage, furi_string_get_cstr(file_path), &fi) == FSE_OK) { + if(storage_common_stat(storage, EVIL_PORTAL_INDEX_SAVE_PATH, &fi) == FSE_OK) { File* index_html = storage_file_alloc(storage); if(storage_file_open( - index_html, furi_string_get_cstr(file_path), FSAM_READ, FSOM_OPEN_EXISTING)) { + index_html, EVIL_PORTAL_INDEX_SAVE_PATH, FSAM_READ, FSOM_OPEN_EXISTING)) { app->index_html = malloc((size_t)fi.size); uint8_t* buf_ptr = app->index_html; size_t read = 0; @@ -45,7 +29,6 @@ bool evil_portal_read_index_html(void* context) { } free(buf_ptr); } - furi_string_free(file_path); storage_file_close(index_html); storage_file_free(index_html); } else { @@ -57,7 +40,6 @@ bool evil_portal_read_index_html(void* context) { } evil_portal_close_storage(); - return true; } void evil_portal_read_ap_name(void* context) { diff --git a/applications/external/evil_portal/helpers/evil_portal_storage.h b/applications/external/evil_portal/helpers/evil_portal_storage.h index d4ad33e1d..286ecbd76 100644 --- a/applications/external/evil_portal/helpers/evil_portal_storage.h +++ b/applications/external/evil_portal/helpers/evil_portal_storage.h @@ -1,5 +1,4 @@ #include "../evil_portal_app_i.h" -#include #include #include #include @@ -11,7 +10,7 @@ #define EVIL_PORTAL_AP_SAVE_PATH PORTAL_FILE_DIRECTORY_PATH "/ap.config.txt" #define EVIL_PORTAL_LOG_SAVE_PATH PORTAL_FILE_DIRECTORY_PATH "/logs" -bool evil_portal_read_index_html(void* context); +void evil_portal_read_index_html(void* context); void evil_portal_read_ap_name(void* context); void write_logs(FuriString* portal_logs); char* sequential_file_resolve_path( diff --git a/applications/external/evil_portal/scenes/evil_portal_scene_console_output.c b/applications/external/evil_portal/scenes/evil_portal_scene_console_output.c index 94f2cef4f..0447e2727 100644 --- a/applications/external/evil_portal/scenes/evil_portal_scene_console_output.c +++ b/applications/external/evil_portal/scenes/evil_portal_scene_console_output.c @@ -22,8 +22,6 @@ void evil_portal_console_output_handle_rx_data_cb(uint8_t* buf, size_t len, void void evil_portal_scene_console_output_on_enter(void* context) { Evil_PortalApp* app = context; - bool portal_file_set = false; - TextBox* text_box = app->text_box; text_box_reset(app->text_box); text_box_set_font(text_box, TextBoxFontText); @@ -65,24 +63,13 @@ void evil_portal_scene_console_output_on_enter(void* context) { } if(0 == strncmp(SET_HTML_CMD, app->selected_tx_string, strlen(SET_HTML_CMD))) { - portal_file_set = evil_portal_read_index_html(context); - - if(portal_file_set) { - app->command_queue[0] = SET_AP_CMD; - app->has_command_queue = true; - app->command_index = 0; - if(app->show_stopscan_tip) { - const char* msg = "Starting portal\nIf no response press\nBACK to return\n"; - furi_string_cat_str(app->text_box_store, msg); - app->text_box_store_strlen += strlen(msg); - } - } else { - if(app->show_stopscan_tip) { - const char* msg = "No portal selected\nShowing current logs\nPress " - "BACK to return\n"; - furi_string_cat_str(app->text_box_store, msg); - app->text_box_store_strlen += strlen(msg); - } + app->command_queue[0] = SET_AP_CMD; + app->has_command_queue = true; + app->command_index = 0; + if(app->show_stopscan_tip) { + const char* msg = "Starting portal\nIf no response press\nBACK to return\n"; + furi_string_cat_str(app->text_box_store, msg); + app->text_box_store_strlen += strlen(msg); } } @@ -107,13 +94,7 @@ void evil_portal_scene_console_output_on_enter(void* context) { if(app->is_command && app->selected_tx_string) { if(0 == strncmp(SET_HTML_CMD, app->selected_tx_string, strlen(SET_HTML_CMD))) { - if(!portal_file_set) { - scene_manager_set_scene_state( - app->scene_manager, Evil_PortalSceneConsoleOutput, 0); - view_dispatcher_switch_to_view( - app->view_dispatcher, Evil_PortalAppViewConsoleOutput); - return; - } + evil_portal_read_index_html(context); FuriString* data = furi_string_alloc(); furi_string_cat(data, "sethtml=");