| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- #ifndef FLIP_STORE_FREE_H
- #define FLIP_STORE_FREE_H
- // Function to free the resources used by FlipStoreApp
- static void flip_store_app_free(FlipStoreApp *app)
- {
- if (!app)
- {
- FURI_LOG_E(TAG, "FlipStoreApp is NULL");
- return;
- }
- if (!flipper_http_disconnect_wifi())
- {
- FURI_LOG_E(TAG, "Failed to disconnect from wifi");
- }
- // Free View(s)
- if (app->view_main)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewMain);
- view_free(app->view_main);
- }
- if (app->view_app_info)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppInfo);
- view_free(app->view_app_info);
- }
- // Free Submenu(s)
- if (app->submenu)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewSubmenu);
- submenu_free(app->submenu);
- }
- if (app->submenu_app_list)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppList);
- submenu_free(app->submenu_app_list);
- }
- // Free Widget(s)
- if (app->widget)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAbout);
- widget_free(app->widget);
- }
- // Free Variable Item List(s)
- if (app->variable_item_list)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewSettings);
- variable_item_list_free(app->variable_item_list);
- }
- // Free Text Input(s)
- if (app->uart_text_input_ssid)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewTextInputSSID);
- uart_text_input_free(app->uart_text_input_ssid);
- }
- if (app->uart_text_input_pass)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewTextInputPass);
- uart_text_input_free(app->uart_text_input_pass);
- }
- // Free popup
- if (app->popup)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewPopup);
- popup_free(app->popup);
- }
- // Free dialog
- if (app->dialog_delete)
- {
- view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppDelete);
- dialog_ex_free(app->dialog_delete);
- }
- // deinitalize flipper http
- flipper_http_deinit();
- // free the view dispatcher
- view_dispatcher_free(app->view_dispatcher);
- // close the gui
- furi_record_close(RECORD_GUI);
- // free the app
- free(app);
- }
- #endif // FLIP_STORE_FREE_H
|