wifi_marauder_scene_script_confirm_delete.c 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. #include "../wifi_marauder_app_i.h"
  2. void wifi_marauder_scene_script_confirm_delete_widget_callback(
  3. GuiButtonType result,
  4. InputType type,
  5. void* context) {
  6. WifiMarauderApp* app = context;
  7. if(type == InputTypeShort) {
  8. view_dispatcher_send_custom_event(app->view_dispatcher, result);
  9. }
  10. }
  11. void wifi_marauder_scene_script_confirm_delete_on_enter(void* context) {
  12. WifiMarauderApp* app = context;
  13. widget_add_button_element(app->widget, GuiButtonTypeLeft, "No", wifi_marauder_scene_script_confirm_delete_widget_callback, app);
  14. widget_add_button_element(app->widget, GuiButtonTypeRight, "Yes", wifi_marauder_scene_script_confirm_delete_widget_callback, app);
  15. widget_add_string_element(app->widget, 0, 0, AlignLeft, AlignTop, FontPrimary, "Are you sure?");
  16. widget_add_text_box_element(
  17. app->widget,
  18. 0, 12, 128, 38,
  19. AlignCenter, AlignCenter,
  20. "The script will be\npermanently deleted",
  21. false);
  22. view_dispatcher_switch_to_view(app->view_dispatcher, WifiMarauderAppViewWidget);
  23. }
  24. bool wifi_marauder_scene_script_confirm_delete_on_event(void* context, SceneManagerEvent event) {
  25. WifiMarauderApp* app = context;
  26. bool consumed = false;
  27. if(event.type == SceneManagerEventTypeCustom) {
  28. // get which button press: "Yes" or "No"
  29. if(event.event == GuiButtonTypeRight) {
  30. // Yes
  31. if (app->script != NULL) {
  32. char script_path[256];
  33. snprintf(script_path, sizeof(script_path), "%s/%s.json", MARAUDER_APP_FOLDER_SCRIPTS, app->script->name);
  34. storage_simply_remove(app->storage, script_path);
  35. wifi_marauder_script_free(app->script);
  36. app->script = NULL;
  37. DialogMessage* message = dialog_message_alloc();
  38. dialog_message_set_text(message, "Deleted!", 88, 32, AlignCenter, AlignCenter);
  39. dialog_message_set_icon(message, &I_DolphinCommon_56x48, 5, 6);
  40. dialog_message_set_buttons(message, NULL, "Ok", NULL);
  41. dialog_message_show(app->dialogs, message);
  42. dialog_message_free(message);
  43. }
  44. }
  45. scene_manager_previous_scene(app->scene_manager);
  46. consumed = true;
  47. }
  48. return consumed;
  49. }
  50. void wifi_marauder_scene_script_confirm_delete_on_exit(void* context) {
  51. WifiMarauderApp* app = context;
  52. widget_reset(app->widget);
  53. }