flip_weather_free.h 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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. if(!app) {
  6. FURI_LOG_E(TAG, "FlipWeatherApp is NULL");
  7. return;
  8. }
  9. // Free View(s)
  10. if(app->view_weather) {
  11. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewWeather);
  12. view_free(app->view_weather);
  13. }
  14. if(app->view_gps) {
  15. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewGPS);
  16. view_free(app->view_gps);
  17. }
  18. // Free Submenu(s)
  19. if(app->submenu) {
  20. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewSubmenu);
  21. submenu_free(app->submenu);
  22. }
  23. // Free Widget(s)
  24. if(app->widget) {
  25. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewAbout);
  26. widget_free(app->widget);
  27. }
  28. // Free Variable Item List(s)
  29. if(app->variable_item_list) {
  30. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewSettings);
  31. variable_item_list_free(app->variable_item_list);
  32. }
  33. // Free Text Input(s)
  34. if(app->uart_text_input_ssid) {
  35. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewTextInputSSID);
  36. text_input_free(app->uart_text_input_ssid);
  37. }
  38. if(app->uart_text_input_password) {
  39. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewTextInputPassword);
  40. text_input_free(app->uart_text_input_password);
  41. }
  42. // Free the text input buffer
  43. if(app->uart_text_input_buffer_ssid) free(app->uart_text_input_buffer_ssid);
  44. if(app->uart_text_input_temp_buffer_ssid) free(app->uart_text_input_temp_buffer_ssid);
  45. if(app->uart_text_input_buffer_password) free(app->uart_text_input_buffer_password);
  46. if(app->uart_text_input_temp_buffer_password) free(app->uart_text_input_temp_buffer_password);
  47. // deinitalize flipper http
  48. flipper_http_deinit();
  49. // free the view dispatcher
  50. if(app->view_dispatcher) view_dispatcher_free(app->view_dispatcher);
  51. // close the gui
  52. furi_record_close(RECORD_GUI);
  53. // free the app
  54. if(app) free(app);
  55. }
  56. #endif // FLIP_WEATHER_FREE_H