acegoal07 пре 1 година
родитељ
комит
38e733a430
6 измењених фајлова са 40 додато и 0 уклоњено
  1. 2 0
      nfc_playlist.c
  2. 2 0
      nfc_playlist.h
  3. 1 0
      nfc_playlist_i.h
  4. 23 0
      scences/file_exists_error.c
  5. 10 0
      scences/file_exists_error.h
  6. 2 0
      scences/text_input.c

+ 2 - 0
nfc_playlist.c

@@ -77,6 +77,7 @@ static NfcPlaylist* nfc_playlist_alloc() {
    view_dispatcher_add_view(nfc_playlist->view_dispatcher, NfcPlaylistView_Popup, popup_get_view(nfc_playlist->popup));
    view_dispatcher_add_view(nfc_playlist->view_dispatcher, NfcPlaylistView_FileSelect, file_browser_get_view(nfc_playlist->file_browser));
    view_dispatcher_add_view(nfc_playlist->view_dispatcher, NfcPlaylistView_FileEdit, submenu_get_view(nfc_playlist->submenu));
+   view_dispatcher_add_view(nfc_playlist->view_dispatcher, NfcPlaylistView_FileExistsError, popup_get_view(nfc_playlist->popup));
    view_dispatcher_add_view(nfc_playlist->view_dispatcher, NfcPlaylistView_TextInput, text_input_get_view(nfc_playlist->text_input));
    return nfc_playlist;
 }
@@ -89,6 +90,7 @@ static void nfc_playlist_free(NfcPlaylist* nfc_playlist) {
    view_dispatcher_remove_view(nfc_playlist->view_dispatcher, NfcPlaylistView_Popup);
    view_dispatcher_remove_view(nfc_playlist->view_dispatcher, NfcPlaylistView_FileSelect);
    view_dispatcher_remove_view(nfc_playlist->view_dispatcher, NfcPlaylistView_FileEdit);
+   view_dispatcher_remove_view(nfc_playlist->view_dispatcher, NfcPlaylistView_FileExistsError);
    view_dispatcher_remove_view(nfc_playlist->view_dispatcher, NfcPlaylistView_TextInput);
    view_dispatcher_free(nfc_playlist->view_dispatcher);
    variable_item_list_free(nfc_playlist->variable_item_list);

+ 2 - 0
nfc_playlist.h

@@ -20,6 +20,7 @@ typedef enum {
    NfcPlaylistView_Popup,
    NfcPlaylistView_FileSelect,
    NfcPlaylistView_FileEdit,
+   NfcPlaylistView_FileExistsError,
    NfcPlaylistView_TextInput
 } NfcPlayScenesView;
 
@@ -29,6 +30,7 @@ typedef enum {
    NfcPlaylistScene_EmulatingPopup,
    NfcPlaylistScene_FileSelect,
    NfcPlaylistScene_FileEdit,
+   NfcPlaylistScene_FileExistsError,
    NfcPlaylistScene_TextInput,
    NfcPlaylistScene_count
 } NfcPlaylistScene;

+ 1 - 0
nfc_playlist_i.h

@@ -4,4 +4,5 @@
 #include "scences/emulation.h"
 #include "scences/file_select.h"
 #include "scences/file_edit.h"
+#include "scences/file_exists_error.h"
 #include "scences/text_input.h"

+ 23 - 0
scences/file_exists_error.c

@@ -0,0 +1,23 @@
+#include "nfc_playlist.h"
+#include "scences/file_exists_error.h"
+
+void nfc_playlist_file_exists_error_scene_on_enter(void* context) {
+   NfcPlaylist* nfc_playlist = context;
+   popup_reset(nfc_playlist->popup);
+   popup_set_header(nfc_playlist->popup, "File Already Exists", 64, 10, AlignCenter, AlignTop);
+   popup_set_text(nfc_playlist->popup, "The file already exists, Press back to try again", 64, 50, AlignCenter, AlignTop);
+   popup_set_context(nfc_playlist->popup, nfc_playlist);
+   view_dispatcher_switch_to_view(nfc_playlist->view_dispatcher, NfcPlaylistView_FileExistsError);
+}
+
+bool nfc_playlist_file_exists_error_scene_on_event(void* context, SceneManagerEvent event) {
+   UNUSED(event);
+   UNUSED(context);
+   return false;
+}
+
+void nfc_playlist_file_exists_error_scene_on_exit(void* context) {
+   NfcPlaylist* nfc_playlist = context;
+   popup_reset(nfc_playlist->popup);
+   scene_manager_previous_scene(nfc_playlist->scene_manager);
+}

+ 10 - 0
scences/file_exists_error.h

@@ -0,0 +1,10 @@
+#pragma once
+#include <furi.h>
+#include <gui/gui.h>
+#include <gui/view_dispatcher.h>
+#include <gui/scene_manager.h>
+#include <gui/modules/file_browser.h>
+
+void nfc_playlist_file_select_scene_on_enter(void* context);
+bool nfc_playlist_file_select_scene_on_event(void* context, SceneManagerEvent event);
+void nfc_playlist_file_select_scene_on_exit(void* context);

+ 2 - 0
scences/text_input.c

@@ -21,6 +21,8 @@ void nfc_playlist_text_input_menu_callback(void* context) {
    if (!storage_file_exists(storage, new_file_name)) {
       storage_common_rename_safe(storage, furi_string_get_cstr(nfc_playlist->settings.file_path), new_file_name);
       nfc_playlist->settings.file_path = furi_string_alloc_set_str(new_file_name);
+   } else {
+      scene_manager_next_scene(nfc_playlist->scene_manager, NfcPlaylistScene_FileExistsError);
    }
 
    free(new_file_name);