subghz_scene_more_raw.c 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "../subghz_i.h"
  2. enum SubmenuIndex {
  3. SubmenuIndexEdit,
  4. SubmenuIndexDelete,
  5. };
  6. void subghz_scene_more_raw_submenu_callback(void* context, uint32_t index) {
  7. SubGhz* subghz = context;
  8. view_dispatcher_send_custom_event(subghz->view_dispatcher, index);
  9. }
  10. void subghz_scene_more_raw_on_enter(void* context) {
  11. SubGhz* subghz = context;
  12. submenu_add_item(
  13. subghz->submenu,
  14. "Rename",
  15. SubmenuIndexEdit,
  16. subghz_scene_more_raw_submenu_callback,
  17. subghz);
  18. submenu_add_item(
  19. subghz->submenu,
  20. "Delete",
  21. SubmenuIndexDelete,
  22. subghz_scene_more_raw_submenu_callback,
  23. subghz);
  24. submenu_set_selected_item(
  25. subghz->submenu, scene_manager_get_scene_state(subghz->scene_manager, SubGhzSceneMoreRAW));
  26. view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewMenu);
  27. }
  28. bool subghz_scene_more_raw_on_event(void* context, SceneManagerEvent event) {
  29. SubGhz* subghz = context;
  30. if(event.type == SceneManagerEventTypeCustom) {
  31. if(event.event == SubmenuIndexDelete) {
  32. scene_manager_set_scene_state(
  33. subghz->scene_manager, SubGhzSceneReadRAW, SubghzCustomEventManagerNoSet);
  34. scene_manager_set_scene_state(
  35. subghz->scene_manager, SubGhzSceneMoreRAW, SubmenuIndexDelete);
  36. scene_manager_next_scene(subghz->scene_manager, SubGhzSceneDeleteRAW);
  37. return true;
  38. } else if(event.event == SubmenuIndexEdit) {
  39. scene_manager_set_scene_state(
  40. subghz->scene_manager, SubGhzSceneMoreRAW, SubmenuIndexEdit);
  41. scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSaveName);
  42. return true;
  43. }
  44. }
  45. return false;
  46. }
  47. void subghz_scene_more_raw_on_exit(void* context) {
  48. SubGhz* subghz = context;
  49. submenu_clean(subghz->submenu);
  50. }