evil_portal_scene_select_html.c 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. #include "../evil_portal_app_i.h"
  2. #include "../helpers/evil_portal_storage.h"
  3. void evil_portal_show_loading_popup(Evil_PortalApp* app, bool show) {
  4. TaskHandle_t timer_task = xTaskGetHandle(configTIMER_SERVICE_TASK_NAME);
  5. ViewStack* view_stack = app->view_stack;
  6. Loading* loading = app->loading;
  7. if(show) {
  8. // Raise timer priority so that animations can play
  9. vTaskPrioritySet(timer_task, configMAX_PRIORITIES - 1);
  10. view_stack_add_view(view_stack, loading_get_view(loading));
  11. } else {
  12. view_stack_remove_view(view_stack, loading_get_view(loading));
  13. // Restore default timer priority
  14. vTaskPrioritySet(timer_task, configTIMER_TASK_PRIORITY);
  15. }
  16. }
  17. void evil_portal_scene_select_html_on_enter(void *context) {
  18. Evil_PortalApp *app = context;
  19. DialogsFileBrowserOptions browser_options;
  20. evil_portal_create_html_folder_if_not_exists();
  21. dialog_file_browser_set_basic_options(&browser_options, HTML_EXTENSION, &I_evil_portal_10px);
  22. browser_options.base_path = HTML_FOLDER;
  23. FuriString* path;
  24. path = furi_string_alloc();
  25. furi_string_set(path, HTML_FOLDER);
  26. bool success = dialog_file_browser_show(
  27. app->dialogs, app->file_path, path, &browser_options);
  28. furi_string_free(path);
  29. if(success) {
  30. //Replace HTML File
  31. evil_portal_show_loading_popup(app, true);
  32. evil_portal_replace_index_html(app->file_path);
  33. evil_portal_show_loading_popup(app, false);
  34. }
  35. if(success) {
  36. scene_manager_search_and_switch_to_previous_scene(
  37. app->scene_manager, Evil_PortalSceneStart);
  38. } else {
  39. scene_manager_previous_scene(app->scene_manager);
  40. }
  41. }
  42. bool evil_portal_scene_select_html_on_event(void *context, SceneManagerEvent event) {
  43. UNUSED(context);
  44. UNUSED(event);
  45. bool consumed = true;
  46. return consumed;
  47. }
  48. void evil_portal_scene_select_html_on_exit(void *context) {
  49. UNUSED(context);
  50. }