picopass_scene_delete.c 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. #include "../picopass_i.h"
  2. void picopass_scene_delete_widget_callback(GuiButtonType result, InputType type, void* context) {
  3. Picopass* picopass = context;
  4. if(type == InputTypeShort) {
  5. view_dispatcher_send_custom_event(picopass->view_dispatcher, result);
  6. }
  7. }
  8. void picopass_scene_delete_on_enter(void* context) {
  9. Picopass* picopass = context;
  10. // Setup Custom Widget view
  11. char temp_str[141];
  12. snprintf(temp_str, sizeof(temp_str), "\e#Delete %s?\e#", picopass->dev->dev_name);
  13. widget_add_text_box_element(
  14. picopass->widget, 0, 0, 128, 23, AlignCenter, AlignCenter, temp_str, false);
  15. widget_add_button_element(
  16. picopass->widget,
  17. GuiButtonTypeLeft,
  18. "Back",
  19. picopass_scene_delete_widget_callback,
  20. picopass);
  21. widget_add_button_element(
  22. picopass->widget,
  23. GuiButtonTypeRight,
  24. "Delete",
  25. picopass_scene_delete_widget_callback,
  26. picopass);
  27. view_dispatcher_switch_to_view(picopass->view_dispatcher, PicopassViewWidget);
  28. }
  29. bool picopass_scene_delete_on_event(void* context, SceneManagerEvent event) {
  30. Picopass* picopass = context;
  31. bool consumed = false;
  32. if(event.type == SceneManagerEventTypeCustom) {
  33. if(event.event == GuiButtonTypeLeft) {
  34. return scene_manager_previous_scene(picopass->scene_manager);
  35. } else if(event.event == GuiButtonTypeRight) {
  36. if(picopass_device_delete(picopass->dev, true)) {
  37. scene_manager_next_scene(picopass->scene_manager, PicopassSceneDeleteSuccess);
  38. } else {
  39. scene_manager_search_and_switch_to_previous_scene(
  40. picopass->scene_manager, PicopassSceneStart);
  41. }
  42. consumed = true;
  43. }
  44. }
  45. return consumed;
  46. }
  47. void picopass_scene_delete_on_exit(void* context) {
  48. Picopass* picopass = context;
  49. widget_reset(picopass->widget);
  50. }