flip_trader_free.h 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  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. {
  6. if (!app)
  7. {
  8. FURI_LOG_E(TAG, "FlipTraderApp is NULL");
  9. return;
  10. }
  11. if (!flipper_http_disconnect_wifi())
  12. {
  13. FURI_LOG_E(TAG, "Failed to disconnect from wifi");
  14. }
  15. // Free View(s)
  16. if (app->view_main)
  17. {
  18. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewMain);
  19. view_free(app->view_main);
  20. }
  21. // Free Submenu(s)
  22. if (app->submenu_main)
  23. {
  24. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewMainSubmenu);
  25. submenu_free(app->submenu_main);
  26. }
  27. if (app->submenu_assets)
  28. {
  29. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewAssetsSubmenu);
  30. submenu_free(app->submenu_assets);
  31. }
  32. // Free Widget(s)
  33. if (app->widget)
  34. {
  35. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewAbout);
  36. widget_free(app->widget);
  37. }
  38. // Free Variable Item List(s)
  39. if (app->variable_item_list_wifi)
  40. {
  41. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewWiFiSettings);
  42. variable_item_list_free(app->variable_item_list_wifi);
  43. }
  44. // Free Text Input(s)
  45. if (app->uart_text_input_ssid)
  46. {
  47. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewTextInputSSID);
  48. uart_text_input_free(app->uart_text_input_ssid);
  49. }
  50. if (app->uart_text_input_password)
  51. {
  52. view_dispatcher_remove_view(app->view_dispatcher, FlipTraderViewTextInputPassword);
  53. uart_text_input_free(app->uart_text_input_password);
  54. }
  55. // deinitalize flipper http
  56. flipper_http_deinit();
  57. // free the view dispatcher
  58. view_dispatcher_free(app->view_dispatcher);
  59. // close the gui
  60. furi_record_close(RECORD_GUI);
  61. // free the app
  62. free(app);
  63. }
  64. #endif // FLIP_TRADER_FREE_H