flip_trader_free.h 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef FLIP_TRADER_FREE_H
  2. #define FLIP_TRADER_FREE_H
  3. // Function to free the resources used by FlipTraderApp
  4. static void flip_trader_app_free(FlipTraderApp* app) {
  5. if(!app) {
  6. FURI_LOG_E(TAG, "FlipTraderApp is NULL");
  7. return;
  8. }
  9. if(!flipper_http_disconnect_wifi()) {
  10. FURI_LOG_E(TAG, "Failed to disconnect from wifi");
  11. }
  12. // Free View(s)
  13. if(app->view_main) {
  14. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewMain);
  15. view_free(app->view_main);
  16. }
  17. // Free Submenu(s)
  18. if(app->submenu_main) {
  19. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewMainSubmenu);
  20. submenu_free(app->submenu_main);
  21. }
  22. if(app->submenu_assets) {
  23. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewAssetsSubmenu);
  24. submenu_free(app->submenu_assets);
  25. }
  26. // Free Widget(s)
  27. if(app->widget) {
  28. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewAbout);
  29. widget_free(app->widget);
  30. }
  31. // Free Variable Item List(s)
  32. if(app->variable_item_list_wifi) {
  33. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewWiFiSettings);
  34. variable_item_list_free(app->variable_item_list_wifi);
  35. }
  36. // Free Text Input(s)
  37. if(app->uart_text_input_ssid) {
  38. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewTextInputSSID);
  39. text_input_free(app->uart_text_input_ssid);
  40. }
  41. if(app->uart_text_input_password) {
  42. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewTextInputPassword);
  43. text_input_free(app->uart_text_input_password);
  44. }
  45. // deinitalize flipper http
  46. flipper_http_deinit();
  47. // free the view dispatcher
  48. view_dispatcher_free(app->view_dispatcher);
  49. // close the gui
  50. furi_record_close(RECORD_GUI);
  51. // free the app
  52. free(app);
  53. }
  54. #endif // FLIP_TRADER_FREE_H