file_edit.c 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. #include "nfc_playlist.h"
  2. #include "scenes/file_edit.h"
  3. void nfc_playlist_file_edit_menu_callback(void* context, uint32_t index) {
  4. NfcPlaylist* nfc_playlist = context;
  5. scene_manager_handle_custom_event(nfc_playlist->scene_manager, index);
  6. }
  7. void nfc_playlist_file_edit_scene_on_enter(void* context) {
  8. NfcPlaylist* nfc_playlist = context;
  9. submenu_set_header(nfc_playlist->submenu, "Edit Playlist");
  10. submenu_add_item(
  11. nfc_playlist->submenu,
  12. "Create Playlist",
  13. NfcPlaylistMenuSelection_CreatePlaylist,
  14. nfc_playlist_file_edit_menu_callback,
  15. nfc_playlist);
  16. submenu_add_lockable_item(
  17. nfc_playlist->submenu,
  18. "Delete Playlist",
  19. NfcPlaylistMenuSelection_DeletePlaylist,
  20. nfc_playlist_file_edit_menu_callback,
  21. nfc_playlist,
  22. furi_string_empty(nfc_playlist->settings.file_path),
  23. "No\nplaylist\nselected");
  24. submenu_add_lockable_item(
  25. nfc_playlist->submenu,
  26. "Rename Playlist",
  27. NfcPlaylistMenuSelection_RenamePlaylist,
  28. nfc_playlist_file_edit_menu_callback,
  29. nfc_playlist,
  30. furi_string_empty(nfc_playlist->settings.file_path),
  31. "No\nplaylist\nselected");
  32. submenu_add_lockable_item(
  33. nfc_playlist->submenu,
  34. "View Playlist Content",
  35. NfcPlaylistMenuSelection_ViewPlaylistContent,
  36. nfc_playlist_file_edit_menu_callback,
  37. nfc_playlist,
  38. furi_string_empty(nfc_playlist->settings.file_path),
  39. "No\nplaylist\nselected");
  40. submenu_add_lockable_item(
  41. nfc_playlist->submenu,
  42. "Add NFC Item",
  43. NfcPlaylistMenuSelection_AddNfcItem,
  44. nfc_playlist_file_edit_menu_callback,
  45. nfc_playlist,
  46. furi_string_empty(nfc_playlist->settings.file_path),
  47. "No\nplaylist\nselected");
  48. view_dispatcher_switch_to_view(nfc_playlist->view_dispatcher, NfcPlaylistView_FileEdit);
  49. }
  50. bool nfc_playlist_file_edit_scene_on_event(void* context, SceneManagerEvent event) {
  51. NfcPlaylist* nfc_playlist = context;
  52. bool consumed = false;
  53. if(event.type == SceneManagerEventTypeCustom) {
  54. switch(event.event) {
  55. case NfcPlaylistMenuSelection_CreatePlaylist:
  56. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_NameNewFile);
  57. consumed = true;
  58. break;
  59. case NfcPlaylistMenuSelection_DeletePlaylist:
  60. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_ConfirmDelete);
  61. consumed = true;
  62. break;
  63. case NfcPlaylistMenuSelection_RenamePlaylist:
  64. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_FileRename);
  65. consumed = true;
  66. break;
  67. case NfcPlaylistMenuSelection_ViewPlaylistContent:
  68. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_ViewPlaylistContent);
  69. consumed = true;
  70. break;
  71. case NfcPlaylistMenuSelection_AddNfcItem:
  72. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_NfcSelect);
  73. consumed = true;
  74. break;
  75. default:
  76. break;
  77. }
  78. }
  79. return consumed;
  80. }
  81. void nfc_playlist_file_edit_scene_on_exit(void* context) {
  82. NfcPlaylist* nfc_playlist = context;
  83. submenu_reset(nfc_playlist->submenu);
  84. }