flip_store.c 6.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. #include <flip_store.h>
  2. // Function to free the resources used by FlipStoreApp
  3. void flip_store_app_free(FlipStoreApp* app) {
  4. if(!app) {
  5. FURI_LOG_E(TAG, "FlipStoreApp is NULL");
  6. return;
  7. }
  8. // Free View(s)
  9. if(app->view_main) {
  10. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewMain);
  11. view_free(app->view_main);
  12. }
  13. if(app->view_app_info) {
  14. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppInfo);
  15. view_free(app->view_app_info);
  16. }
  17. if(app->view_firmware_download) {
  18. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewFirmwareDownload);
  19. view_free(app->view_firmware_download);
  20. }
  21. // Free Submenu(s)
  22. if(app->submenu_main) {
  23. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewSubmenu);
  24. submenu_free(app->submenu_main);
  25. }
  26. if(app->submenu_options) {
  27. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewSubmenuOptions);
  28. submenu_free(app->submenu_options);
  29. }
  30. if(app->submenu_app_list) {
  31. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppList);
  32. submenu_free(app->submenu_app_list);
  33. }
  34. if(app->submenu_firmwares) {
  35. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewFirmwares);
  36. submenu_free(app->submenu_firmwares);
  37. }
  38. if(app->submenu_app_list_bluetooth) {
  39. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListBluetooth);
  40. submenu_free(app->submenu_app_list_bluetooth);
  41. }
  42. if(app->submenu_app_list_games) {
  43. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListGames);
  44. submenu_free(app->submenu_app_list_games);
  45. }
  46. if(app->submenu_app_list_gpio) {
  47. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListGPIO);
  48. submenu_free(app->submenu_app_list_gpio);
  49. }
  50. if(app->submenu_app_list_infrared) {
  51. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListInfrared);
  52. submenu_free(app->submenu_app_list_infrared);
  53. }
  54. if(app->submenu_app_list_ibutton) {
  55. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListiButton);
  56. submenu_free(app->submenu_app_list_ibutton);
  57. }
  58. if(app->submenu_app_list_media) {
  59. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListMedia);
  60. submenu_free(app->submenu_app_list_media);
  61. }
  62. if(app->submenu_app_list_nfc) {
  63. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListNFC);
  64. submenu_free(app->submenu_app_list_nfc);
  65. }
  66. if(app->submenu_app_list_rfid) {
  67. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListRFID);
  68. submenu_free(app->submenu_app_list_rfid);
  69. }
  70. if(app->submenu_app_list_subghz) {
  71. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListSubGHz);
  72. submenu_free(app->submenu_app_list_subghz);
  73. }
  74. if(app->submenu_app_list_tools) {
  75. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListTools);
  76. submenu_free(app->submenu_app_list_tools);
  77. }
  78. if(app->submenu_app_list_usb) {
  79. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppListUSB);
  80. submenu_free(app->submenu_app_list_usb);
  81. }
  82. // Free Widget(s)
  83. if(app->widget) {
  84. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAbout);
  85. widget_free(app->widget);
  86. }
  87. // Free Variable Item List(s)
  88. if(app->variable_item_list) {
  89. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewSettings);
  90. variable_item_list_free(app->variable_item_list);
  91. }
  92. // Free Text Input(s)
  93. if(app->uart_text_input_ssid) {
  94. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewTextInputSSID);
  95. text_input_free(app->uart_text_input_ssid);
  96. }
  97. if(app->uart_text_input_pass) {
  98. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewTextInputPass);
  99. text_input_free(app->uart_text_input_pass);
  100. }
  101. // Free popup
  102. if(app->popup) {
  103. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewPopup);
  104. popup_free(app->popup);
  105. }
  106. // Free dialog
  107. if(app->dialog_delete) {
  108. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewAppDelete);
  109. dialog_ex_free(app->dialog_delete);
  110. }
  111. if(app->dialog_firmware) {
  112. view_dispatcher_remove_view(app->view_dispatcher, FlipStoreViewFirmwareDialog);
  113. dialog_ex_free(app->dialog_firmware);
  114. }
  115. // deinitalize flipper http
  116. flipper_http_deinit();
  117. // free the view dispatcher
  118. view_dispatcher_free(app->view_dispatcher);
  119. // close the gui
  120. furi_record_close(RECORD_GUI);
  121. // free the app
  122. free(app);
  123. }
  124. void flip_store_request_error(Canvas* canvas) {
  125. if(fhttp.last_response != NULL) {
  126. if(strstr(fhttp.last_response, "[ERROR] Not connected to Wifi. Failed to reconnect.") !=
  127. NULL) {
  128. canvas_clear(canvas);
  129. canvas_draw_str(canvas, 0, 10, "[ERROR] Not connected to Wifi.");
  130. canvas_draw_str(canvas, 0, 50, "Update your WiFi settings.");
  131. canvas_draw_str(canvas, 0, 60, "Press BACK to return.");
  132. } else if(strstr(fhttp.last_response, "[ERROR] Failed to connect to Wifi.") != NULL) {
  133. canvas_clear(canvas);
  134. canvas_draw_str(canvas, 0, 10, "[ERROR] Not connected to Wifi.");
  135. canvas_draw_str(canvas, 0, 50, "Update your WiFi settings.");
  136. canvas_draw_str(canvas, 0, 60, "Press BACK to return.");
  137. } else {
  138. FURI_LOG_E(TAG, "Received an error: %s", fhttp.last_response);
  139. canvas_draw_str(canvas, 0, 42, "Unusual error...");
  140. canvas_draw_str(canvas, 0, 50, "Update your WiFi settings.");
  141. canvas_draw_str(canvas, 0, 60, "Press BACK to return.");
  142. }
  143. } else {
  144. canvas_clear(canvas);
  145. canvas_draw_str(canvas, 0, 10, "[ERROR] Unknown error.");
  146. canvas_draw_str(canvas, 0, 50, "Update your WiFi settings.");
  147. canvas_draw_str(canvas, 0, 60, "Press BACK to return.");
  148. }
  149. }