| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128 |
- static void free_buffers(WebCrawlerApp *app)
- {
- if (!app)
- {
- FURI_LOG_E(TAG, "Invalid app context");
- return;
- }
- if (app->path)
- {
- free(app->path);
- app->path = NULL;
- }
- if (app->temp_buffer_path)
- {
- free(app->temp_buffer_path);
- app->temp_buffer_path = NULL;
- }
- if (app->ssid)
- {
- free(app->ssid);
- app->ssid = NULL;
- }
- if (app->temp_buffer_ssid)
- {
- free(app->temp_buffer_ssid);
- app->temp_buffer_ssid = NULL;
- }
- if (app->password)
- {
- free(app->password);
- app->password = NULL;
- }
- if (app->temp_buffer_password)
- {
- free(app->temp_buffer_password);
- app->temp_buffer_password = NULL;
- }
- }
- static void free_resources(WebCrawlerApp *app)
- {
- if (!app)
- {
- FURI_LOG_E(TAG, "Invalid app context");
- return;
- }
- free_buffers(app);
- free(app);
- }
- static void free_all(WebCrawlerApp *app, char *reason)
- {
- FURI_LOG_E(TAG, reason);
- if (app->view_main)
- view_free(app->view_main);
- if (app->submenu)
- submenu_free(app->submenu);
- if (app->variable_item_list_config)
- variable_item_list_free(app->variable_item_list_config);
- if (app->view_dispatcher)
- view_dispatcher_free(app->view_dispatcher);
- if (app->widget_about)
- widget_free(app->widget_about);
- if (app->textbox)
- widget_free(app->textbox);
- furi_record_close(RECORD_GUI);
- free_resources(app);
- }
- /**
- * @brief Function to free the resources used by WebCrawlerApp.
- * @param app The WebCrawlerApp object to free.
- */
- static void web_crawler_app_free(WebCrawlerApp *app)
- {
- if (!app)
- {
- FURI_LOG_E(TAG, "Invalid app context");
- return;
- }
- // Remove and free Main view
- view_dispatcher_remove_view(app->view_dispatcher, WebCrawlerViewRun);
- view_free(app->view_main);
- // diconnect wifi
- if (!flipper_http_disconnect_wifi())
- {
- FURI_LOG_E(TAG, "Failed to disconnect from WiFi");
- }
- // Deinitialize UART
- flipper_http_deinit();
- // Remove and free Submenu
- view_dispatcher_remove_view(app->view_dispatcher, WebCrawlerViewSubmenu);
- submenu_free(app->submenu);
- // Remove and free Configuration screen
- view_dispatcher_remove_view(app->view_dispatcher, WebCrawlerViewConfigure);
- variable_item_list_free(app->variable_item_list_config);
- // Remove and free Text Input views
- view_dispatcher_remove_view(app->view_dispatcher, WebCrawlerViewTextInput);
- view_dispatcher_remove_view(app->view_dispatcher, WebCrawlerViewTextInputSSID);
- view_dispatcher_remove_view(app->view_dispatcher, WebCrawlerViewTextInputPassword);
- // Remove and free About view
- view_dispatcher_remove_view(app->view_dispatcher, WebCrawlerViewAbout);
- widget_free(app->widget_about);
- // Remove and free Textbox view
- view_dispatcher_remove_view(app->view_dispatcher, WebCrawlerViewData);
- widget_free(app->textbox);
- // Free the ViewDispatcher and close GUI
- view_dispatcher_free(app->view_dispatcher);
- // Free the application structure
- free_buffers(app);
- free(app);
- }
|