#ifndef WEB_CRAWLER_CALLBACK_H #define WEB_CRAWLER_CALLBACK_H #include "web_crawler.h" #include extern bool sent_http_request; extern bool get_success; extern bool already_success; void web_crawler_http_method_change(VariableItem *item); /** * @brief Navigation callback to handle exiting from other views to the submenu. * @param context The context - WebCrawlerApp object. * @return WebCrawlerViewSubmenu */ uint32_t web_crawler_back_to_configure_callback(void *context); /** * @brief Navigation callback to handle returning to the Wifi Settings screen. * @param context The context - WebCrawlerApp object. * @return WebCrawlerViewSubmenu */ uint32_t web_crawler_back_to_main_callback(void *context); uint32_t web_crawler_back_to_file_callback(void *context); uint32_t web_crawler_back_to_wifi_callback(void *context); uint32_t web_crawler_back_to_request_callback(void *context); /** * @brief Navigation callback to handle exiting the app from the main submenu. * @param context The context - unused * @return VIEW_NONE to exit the app */ uint32_t web_crawler_exit_app_callback(void *context); /** * @brief Handle submenu item selection. * @param context The context - WebCrawlerApp object. * @param index The WebCrawlerSubmenuIndex item that was clicked. */ void web_crawler_submenu_callback(void *context, uint32_t index); /** * @brief Configuration enter callback to handle different items. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_wifi_enter_callback(void *context, uint32_t index); /** * @brief Configuration enter callback to handle different items. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_file_enter_callback(void *context, uint32_t index); /** * @brief Configuration enter callback to handle different items. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_request_enter_callback(void *context, uint32_t index); /** * @brief Callback for when the user finishes entering the URL. * @param context The context - WebCrawlerApp object. */ void web_crawler_set_path_updated(void *context); /** * @brief Callback for when the user finishes entering the headers * @param context The context - WebCrawlerApp object. */ void web_crawler_set_headers_updated(void *context); /** * @brief Callback for when the user finishes entering the payload. * @param context The context - WebCrawlerApp object. */ void web_crawler_set_payload_updated(void *context); /** * @brief Callback for when the user finishes entering the SSID. * @param context The context - WebCrawlerApp object. */ void web_crawler_set_ssid_updated(void *context); /** * @brief Callback for when the user finishes entering the Password. * @param context The context - WebCrawlerApp object. */ void web_crawler_set_password_update(void *context); /** * @brief Callback for when the user finishes entering the File Type. * @param context The context - WebCrawlerApp object. */ void web_crawler_set_file_type_update(void *context); /** * @brief Callback for when the user finishes entering the File Rename. * @param context The context - WebCrawlerApp object. */ void web_crawler_set_file_rename_update(void *context); /** * @brief Handler for Path configuration item click. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_setting_item_path_clicked(void *context, uint32_t index); /** * @brief Handler for headers configuration item click. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_setting_item_headers_clicked(void *context, uint32_t index); /** * @brief Handler for payload configuration item click. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_setting_item_payload_clicked(void *context, uint32_t index); /** * @brief Handler for SSID configuration item click. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_setting_item_ssid_clicked(void *context, uint32_t index); /** * @brief Handler for Password configuration item click. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_setting_item_password_clicked(void *context, uint32_t index); /** * @brief Handler for File Type configuration item click. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_setting_item_file_type_clicked(void *context, uint32_t index); /** * @brief Handler for File Rename configuration item click. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_setting_item_file_rename_clicked(void *context, uint32_t index); /** * @brief Handler for File Delete configuration item click. * @param context The context - WebCrawlerApp object. * @param index The index of the item that was clicked. */ void web_crawler_setting_item_file_delete_clicked(void *context, uint32_t index); void web_crawler_setting_item_file_read_clicked(void *context, uint32_t index); // Add edits by Derek Jamison typedef enum DataState DataState; enum DataState { DataStateInitial, DataStateRequested, DataStateReceived, DataStateParsed, DataStateParseError, DataStateError, }; typedef enum WebCrawlerCustomEvent WebCrawlerCustomEvent; enum WebCrawlerCustomEvent { WebCrawlerCustomEventProcess, }; typedef struct DataLoaderModel DataLoaderModel; typedef bool (*DataLoaderFetch)(DataLoaderModel *model); typedef char *(*DataLoaderParser)(DataLoaderModel *model); struct DataLoaderModel { char *title; char *data_text; DataState data_state; DataLoaderFetch fetcher; DataLoaderParser parser; void *parser_context; size_t request_index; size_t request_count; ViewNavigationCallback back_callback; FuriTimer *timer; }; void web_crawler_generic_switch_to_view(WebCrawlerApp *app, char *title, DataLoaderFetch fetcher, DataLoaderParser parser, size_t request_count, ViewNavigationCallback back, uint32_t view_id); void web_crawler_loader_draw_callback(Canvas *canvas, void *model); void web_crawler_loader_init(View *view); void web_crawler_loader_free_model(View *view); bool web_crawler_custom_event_callback(void *context, uint32_t index); #endif