flip_weather_free.h 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. #ifndef FLIP_WEATHER_FREE_H
  2. #define FLIP_WEATHER_FREE_H
  3. // Function to free the resources used by FlipWeatherApp
  4. static void flip_weather_app_free(FlipWeatherApp *app)
  5. {
  6. if (!app)
  7. {
  8. FURI_LOG_E(TAG, "FlipWeatherApp is NULL");
  9. return;
  10. }
  11. // Free View(s)
  12. if (app->view_weather)
  13. {
  14. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewWeather);
  15. view_free(app->view_weather);
  16. }
  17. if (app->view_gps)
  18. {
  19. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewGPS);
  20. view_free(app->view_gps);
  21. }
  22. // Free Submenu(s)
  23. if (app->submenu)
  24. {
  25. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewSubmenu);
  26. submenu_free(app->submenu);
  27. }
  28. // Free Widget(s)
  29. if (app->widget)
  30. {
  31. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewAbout);
  32. widget_free(app->widget);
  33. }
  34. // Free Variable Item List(s)
  35. if (app->variable_item_list)
  36. {
  37. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewSettings);
  38. variable_item_list_free(app->variable_item_list);
  39. }
  40. // Free Text Input(s)
  41. if (app->uart_text_input_ssid)
  42. {
  43. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewTextInputSSID);
  44. uart_text_input_free(app->uart_text_input_ssid);
  45. }
  46. if (app->uart_text_input_password)
  47. {
  48. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewTextInputPassword);
  49. uart_text_input_free(app->uart_text_input_password);
  50. }
  51. // Free the text input buffer
  52. if (app->uart_text_input_buffer_ssid)
  53. free(app->uart_text_input_buffer_ssid);
  54. if (app->uart_text_input_temp_buffer_ssid)
  55. free(app->uart_text_input_temp_buffer_ssid);
  56. if (app->uart_text_input_buffer_password)
  57. free(app->uart_text_input_buffer_password);
  58. if (app->uart_text_input_temp_buffer_password)
  59. free(app->uart_text_input_temp_buffer_password);
  60. // deinitalize flipper http
  61. flipper_http_deinit();
  62. // free the view dispatcher
  63. if (app->view_dispatcher)
  64. view_dispatcher_free(app->view_dispatcher);
  65. // close the gui
  66. furi_record_close(RECORD_GUI);
  67. // free the app
  68. if (app)
  69. free(app);
  70. }
  71. #endif // FLIP_WEATHER_FREE_H