flip_wifi_i.h 5.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140
  1. #ifndef FLIP_WIFI_I_H
  2. #define FLIP_WIFI_I_H
  3. // Function to allocate resources for the FlipWiFiApp
  4. static FlipWiFiApp *flip_wifi_app_alloc()
  5. {
  6. FlipWiFiApp *app = (FlipWiFiApp *)malloc(sizeof(FlipWiFiApp));
  7. Gui *gui = furi_record_open(RECORD_GUI);
  8. // initialize uart
  9. if (!flipper_http_init(flipper_http_rx_callback, app))
  10. {
  11. FURI_LOG_E(TAG, "Failed to initialize flipper http");
  12. return NULL;
  13. }
  14. // Allocate the text input buffer
  15. app->uart_text_input_buffer_size_password_scan = 64;
  16. app->uart_text_input_buffer_size_password_saved = 64;
  17. app->uart_text_input_buffer_size_add_ssid = 64;
  18. app->uart_text_input_buffer_size_add_password = 64;
  19. if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_password_scan, app->uart_text_input_buffer_size_password_scan))
  20. {
  21. return NULL;
  22. }
  23. if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_password_scan, app->uart_text_input_buffer_size_password_scan))
  24. {
  25. return NULL;
  26. }
  27. if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_password_saved, app->uart_text_input_buffer_size_password_saved))
  28. {
  29. return NULL;
  30. }
  31. if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_password_saved, app->uart_text_input_buffer_size_password_saved))
  32. {
  33. return NULL;
  34. }
  35. if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_add_ssid, app->uart_text_input_buffer_size_add_ssid))
  36. {
  37. return NULL;
  38. }
  39. if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_add_ssid, app->uart_text_input_buffer_size_add_ssid))
  40. {
  41. return NULL;
  42. }
  43. if (!easy_flipper_set_buffer(&app->uart_text_input_buffer_add_password, app->uart_text_input_buffer_size_add_password))
  44. {
  45. return NULL;
  46. }
  47. if (!easy_flipper_set_buffer(&app->uart_text_input_temp_buffer_add_password, app->uart_text_input_buffer_size_add_password))
  48. {
  49. return NULL;
  50. }
  51. // Allocate ViewDispatcher
  52. if (!easy_flipper_set_view_dispatcher(&app->view_dispatcher, gui, app))
  53. {
  54. return NULL;
  55. }
  56. // View(s)
  57. if (!easy_flipper_set_view(&app->view_wifi_scan, FlipWiFiViewWiFiScan, flip_wifi_view_draw_callback_scan, flip_wifi_view_input_callback_scan, callback_to_submenu_scan, &app->view_dispatcher, app))
  58. {
  59. return NULL;
  60. }
  61. if (!easy_flipper_set_view(&app->view_wifi_saved, FlipWiFiViewWiFiSaved, flip_wifi_view_draw_callback_saved, flip_wifi_view_input_callback_saved, callback_to_submenu_saved, &app->view_dispatcher, app))
  62. {
  63. return NULL;
  64. }
  65. // Widget
  66. if (!easy_flipper_set_widget(&app->widget_info, FlipWiFiViewAbout, "FlipWiFi v1.0\n-----\nFlipperHTTP companion app.\nScan and save WiFi networks.\n-----\nwww.github.com/jblanked", callback_to_submenu_main, &app->view_dispatcher))
  67. {
  68. return NULL;
  69. }
  70. // Text Input
  71. if (!easy_flipper_set_uart_text_input(&app->uart_text_input_password_scan, FlipWiFiViewTextInputScan, "Enter WiFi Password", app->uart_text_input_temp_buffer_password_scan, app->uart_text_input_buffer_size_password_scan, flip_wifi_text_updated_password_scan, callback_to_submenu_scan, &app->view_dispatcher, app))
  72. {
  73. return NULL;
  74. }
  75. if (!easy_flipper_set_uart_text_input(&app->uart_text_input_password_saved, FlipWiFiViewTextInputSaved, "Enter WiFi Password", app->uart_text_input_temp_buffer_password_saved, app->uart_text_input_buffer_size_password_saved, flip_wifi_text_updated_password_saved, callback_to_submenu_saved, &app->view_dispatcher, app))
  76. {
  77. return NULL;
  78. }
  79. if (!easy_flipper_set_uart_text_input(&app->uart_text_input_add_ssid, FlipWiFiViewTextInputSavedAddSSID, "Enter SSID", app->uart_text_input_temp_buffer_add_ssid, app->uart_text_input_buffer_size_add_ssid, flip_wifi_text_updated_add_ssid, callback_to_submenu_saved, &app->view_dispatcher, app))
  80. {
  81. return NULL;
  82. }
  83. if (!easy_flipper_set_uart_text_input(&app->uart_text_input_add_password, FlipWiFiViewTextInputSavedAddPassword, "Enter Password", app->uart_text_input_temp_buffer_add_password, app->uart_text_input_buffer_size_add_password, flip_wifi_text_updated_add_password, callback_to_submenu_saved, &app->view_dispatcher, app))
  84. {
  85. return NULL;
  86. }
  87. // Submenu
  88. if (!easy_flipper_set_submenu(&app->submenu_main, FlipWiFiViewSubmenuMain, "FlipWiFi v1.0", easy_flipper_callback_exit_app, &app->view_dispatcher))
  89. {
  90. return NULL;
  91. }
  92. if (!easy_flipper_set_submenu(&app->submenu_wifi_scan, FlipWiFiViewSubmenuScan, "WiFi Scan", callback_to_submenu_main, &app->view_dispatcher))
  93. {
  94. return NULL;
  95. }
  96. if (!easy_flipper_set_submenu(&app->submenu_wifi_saved, FlipWiFiViewSubmenuSaved, "Saved APs", callback_to_submenu_main, &app->view_dispatcher))
  97. {
  98. return NULL;
  99. }
  100. submenu_add_item(app->submenu_main, "Scan", FlipWiFiSubmenuIndexWiFiScan, callback_submenu_choices, app);
  101. submenu_add_item(app->submenu_main, "Saved APs", FlipWiFiSubmenuIndexWiFiSaved, callback_submenu_choices, app);
  102. submenu_add_item(app->submenu_main, "Info", FlipWiFiSubmenuIndexAbout, callback_submenu_choices, app);
  103. // Popup
  104. if (!easy_flipper_set_popup(&app->popup, FlipWiFiViewPopup, "Success", 0, 0, "The WiFi setting has been set.", 0, 10, popup_callback_saved, callback_to_submenu_saved, &app->view_dispatcher, app))
  105. {
  106. return false;
  107. }
  108. // Load the playlist from storage
  109. if (!load_playlist(&app->wifi_playlist))
  110. {
  111. FURI_LOG_E(TAG, "Failed to load playlist");
  112. }
  113. // load the playlist
  114. if (load_playlist(&app->wifi_playlist))
  115. {
  116. // Update the submenu
  117. flip_wifi_redraw_submenu_saved(app);
  118. }
  119. // Switch to the main view
  120. view_dispatcher_switch_to_view(app->view_dispatcher, FlipWiFiViewSubmenuMain);
  121. app_instance = app;
  122. return app;
  123. }
  124. #endif // FLIP_WIFI_I_H