11#include "../nfc_playlist.h"
22
3- void nfc_playlist_name_new_playlist_menu_callback (void * context ) {
3+ int32_t nfc_playlist_name_new_playlist_thread_task (void * context ) {
44 NfcPlaylist * nfc_playlist = context ;
55
66 FuriString * file_name = furi_string_alloc_printf ("/ext/apps_data/nfc_playlist/%s.txt" , nfc_playlist -> text_input_output );
@@ -20,7 +20,25 @@ void nfc_playlist_name_new_playlist_menu_callback(void* context) {
2020 furi_string_free (file_name );
2121 storage_file_free (file );
2222 furi_record_close (RECORD_STORAGE );
23- scene_manager_previous_scene (nfc_playlist -> scene_manager );
23+
24+ return 0 ;
25+ }
26+
27+ void nfc_playlist_name_new_playlist_thread_state_callback (FuriThreadState state , void * context ) {
28+ NfcPlaylist * nfc_playlist = context ;
29+ if (state == FuriThreadStateStopped ) {
30+ furi_thread_yield ();
31+ nfc_playlist -> thread = NULL ;
32+ scene_manager_search_and_switch_to_previous_scene (nfc_playlist -> scene_manager , NfcPlaylistScene_MainMenu );
33+ }
34+ }
35+
36+ void nfc_playlist_name_new_playlist_menu_callback (void * context ) {
37+ NfcPlaylist * nfc_playlist = context ;
38+ nfc_playlist -> thread = furi_thread_alloc_ex ("NfcPlaylistCreator" , 1024 , nfc_playlist_name_new_playlist_thread_task , nfc_playlist );
39+ furi_thread_set_state_context (nfc_playlist -> thread , nfc_playlist );
40+ furi_thread_set_state_callback (nfc_playlist -> thread , nfc_playlist_name_new_playlist_thread_state_callback );
41+ furi_thread_start (nfc_playlist -> thread );
2442}
2543
2644void nfc_playlist_name_new_playlist_scene_on_enter (void * context ) {
@@ -29,7 +47,7 @@ void nfc_playlist_name_new_playlist_scene_on_enter(void* context) {
2947 nfc_playlist -> text_input_output = malloc (MAX_PLAYLIST_NAME_LEN + 1 );
3048 text_input_set_header_text (nfc_playlist -> text_input , "Enter file name" );
3149 text_input_set_minimum_length (nfc_playlist -> text_input , 1 );
32- text_input_set_result_callback (nfc_playlist -> text_input , nfc_playlist_name_new_playlist_menu_callback , nfc_playlist , nfc_playlist -> text_input_output , MAX_PLAYLIST_NAME_LEN , false );
50+ text_input_set_result_callback (nfc_playlist -> text_input , nfc_playlist_name_new_playlist_menu_callback , nfc_playlist , nfc_playlist -> text_input_output , MAX_PLAYLIST_NAME_LEN , true );
3351
3452 view_dispatcher_switch_to_view (nfc_playlist -> view_dispatcher , NfcPlaylistView_TextInput );
3553}
0 commit comments