file_edit.c 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #include "nfc_playlist.h"
  2. #include "scences/file_edit.h"
  3. typedef enum {
  4. NfcPlaylistMenuSelection_DeletePlaylist,
  5. NfcPlaylistMenuSelection_RenamePlaylist
  6. } NfcPlaylistMenuSelection;
  7. void nfc_playlist_file_edit_menu_callback(void* context, uint32_t index) {
  8. NfcPlaylist* nfc_playlist = context;
  9. Storage* storage = furi_record_open(RECORD_STORAGE);
  10. switch(index) {
  11. case NfcPlaylistMenuSelection_DeletePlaylist: {
  12. storage_simply_remove(storage, furi_string_get_cstr(nfc_playlist->settings.file_path));
  13. nfc_playlist->settings.file_selected = false;
  14. nfc_playlist->settings.file_selected_check = false;
  15. nfc_playlist->settings.file_path = nfc_playlist->settings.base_file_path;
  16. scene_manager_previous_scene(nfc_playlist->scene_manager);
  17. break;
  18. }
  19. case NfcPlaylistMenuSelection_RenamePlaylist: {
  20. scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_TextInput);
  21. break;
  22. }
  23. default: {
  24. break;
  25. }
  26. }
  27. furi_record_close(RECORD_STORAGE);
  28. }
  29. void nfc_playlist_file_edit_scene_on_enter(void* context) {
  30. NfcPlaylist* nfc_playlist = context;
  31. submenu_set_header(nfc_playlist->submenu, "Edit Playlist");
  32. submenu_add_lockable_item(
  33. nfc_playlist->submenu,
  34. "Delete Playlist",
  35. NfcPlaylistMenuSelection_DeletePlaylist,
  36. nfc_playlist_file_edit_menu_callback,
  37. nfc_playlist,
  38. !nfc_playlist->settings.file_selected_check,
  39. "No\nplaylist\nselected");
  40. submenu_add_lockable_item(
  41. nfc_playlist->submenu,
  42. "Rename Playlist",
  43. NfcPlaylistMenuSelection_RenamePlaylist,
  44. nfc_playlist_file_edit_menu_callback,
  45. nfc_playlist,
  46. !nfc_playlist->settings.file_selected_check,
  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. UNUSED(event);
  52. UNUSED(context);
  53. return false;
  54. }
  55. void nfc_playlist_file_edit_scene_on_exit(void* context) {
  56. NfcPlaylist* nfc_playlist = context;
  57. submenu_reset(nfc_playlist->submenu);
  58. }