#include #include // Function to free the resources used by FlipStoreApp void flip_store_app_free(FlipStoreApp* app) { if(!app) { FURI_LOG_E(TAG, "FlipStoreApp is NULL"); return; } // Free Widget(s) if(app->widget_result) { view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewWidgetResult); widget_free(app->widget_result); } // Free View(s) if(app->view_loader) { view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewLoader); flip_store_loader_free_model(app->view_loader); view_free(app->view_loader); } // Free Submenu(s) if(app->submenu_main) { view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewSubmenu); submenu_free(app->submenu_main); } if(app->submenu_options) { view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewSubmenuOptions); submenu_free(app->submenu_options); } if(app->submenu_app_list) { view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppList); submenu_free(app->submenu_app_list); } if(app->submenu_firmwares) { view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewFirmwares); submenu_free(app->submenu_firmwares); } if(app->submenu_vgm_firmwares) { view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewVGMFirmwares); submenu_free(app->submenu_vgm_firmwares); } free_all_views(app, true); // free the view dispatcher if(app->view_dispatcher) view_dispatcher_free(app->view_dispatcher); // close the gui furi_record_close(RECORD_GUI); // free the app if(app) free(app); }