flip_weather.c 2.6 KB

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