subghz_scene_more_raw.c 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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, SubGhzViewIdMenu);
  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. memset(subghz->file_name_tmp, 0, sizeof(subghz->file_name_tmp));
  40. scene_manager_set_scene_state(
  41. subghz->scene_manager, SubGhzSceneMoreRAW, SubmenuIndexEdit);
  42. scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSaveName);
  43. return true;
  44. }
  45. }
  46. return false;
  47. }
  48. void subghz_scene_more_raw_on_exit(void* context) {
  49. SubGhz* subghz = context;
  50. submenu_reset(subghz->submenu);
  51. }