flip_weather.c 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  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. {
  18. if (!app)
  19. {
  20. FURI_LOG_E(TAG, "FlipWeatherApp is NULL");
  21. return;
  22. }
  23. // Free View(s)
  24. if (app->view_weather)
  25. {
  26. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewWeather);
  27. view_free(app->view_weather);
  28. }
  29. if (app->view_gps)
  30. {
  31. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewGPS);
  32. view_free(app->view_gps);
  33. }
  34. // Free Submenu(s)
  35. if (app->submenu)
  36. {
  37. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewSubmenu);
  38. submenu_free(app->submenu);
  39. }
  40. // Free Widget(s)
  41. if (app->widget)
  42. {
  43. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewAbout);
  44. widget_free(app->widget);
  45. }
  46. // Free Variable Item List(s)
  47. if (app->variable_item_list)
  48. {
  49. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewSettings);
  50. variable_item_list_free(app->variable_item_list);
  51. }
  52. // Free Text Input(s)
  53. if (app->uart_text_input_ssid)
  54. {
  55. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewTextInputSSID);
  56. uart_text_input_free(app->uart_text_input_ssid);
  57. }
  58. if (app->uart_text_input_password)
  59. {
  60. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewTextInputPassword);
  61. uart_text_input_free(app->uart_text_input_password);
  62. }
  63. // Free Popup(s)
  64. if (app->popup_error)
  65. {
  66. view_dispatcher_remove_view(app->view_dispatcher, FlipWeatherViewPopupError);
  67. popup_free(app->popup_error);
  68. }
  69. // Free the text input buffer
  70. if (app->uart_text_input_buffer_ssid)
  71. free(app->uart_text_input_buffer_ssid);
  72. if (app->uart_text_input_temp_buffer_ssid)
  73. free(app->uart_text_input_temp_buffer_ssid);
  74. if (app->uart_text_input_buffer_password)
  75. free(app->uart_text_input_buffer_password);
  76. if (app->uart_text_input_temp_buffer_password)
  77. free(app->uart_text_input_temp_buffer_password);
  78. // deinitalize flipper http
  79. flipper_http_deinit();
  80. // free the view dispatcher
  81. if (app->view_dispatcher)
  82. view_dispatcher_free(app->view_dispatcher);
  83. // close the gui
  84. furi_record_close(RECORD_GUI);
  85. // free the app
  86. if (app)
  87. free(app);
  88. }