diff --git a/applications/main/bad_kb/bad_kb_app.c b/applications/main/bad_kb/bad_kb_app.c index 816578f00..bfb5a3d6d 100644 --- a/applications/main/bad_kb/bad_kb_app.c +++ b/applications/main/bad_kb/bad_kb_app.c @@ -151,8 +151,8 @@ BadKbApp* bad_kb_app_alloc(char* arg) { app->error = BadKbAppErrorCloseRpc; scene_manager_next_scene(app->scene_manager, BadKbSceneError); } else { - app->bt_init_thread = furi_thread_alloc_ex("BadKbBtInit", 512, (FuriThreadCallback)bad_kb_connection_init, app); - furi_thread_start(app->bt_init_thread); + app->conn_init_thread = furi_thread_alloc_ex("BadKbConnInit", 512, (FuriThreadCallback)bad_kb_connection_init, app); + furi_thread_start(app->conn_init_thread); if(!furi_string_empty(app->file_path)) { app->bad_kb_script = bad_kb_script_open(app->file_path, app->is_bt ? app->bt : NULL); bad_kb_script_set_keyboard_layout(app->bad_kb_script, app->keyboard_layout); @@ -174,9 +174,6 @@ void bad_kb_app_free(BadKbApp* app) { app->bad_kb_script = NULL; } - furi_thread_join(app->bt_init_thread); - bad_kb_connection_deinit(app); - // Views view_dispatcher_remove_view(app->view_dispatcher, BadKbAppViewWork); bad_kb_free(app->bad_kb_view); @@ -224,6 +221,10 @@ void bad_kb_app_free(BadKbApp* app) { furi_string_free(app->file_path); furi_string_free(app->keyboard_layout); + furi_thread_join(app->conn_init_thread); + bad_kb_connection_deinit(app); + furi_thread_free(app->conn_init_thread); + free(app); } diff --git a/applications/main/bad_kb/bad_kb_app_i.h b/applications/main/bad_kb/bad_kb_app_i.h index 7c81144f6..ac79205b5 100644 --- a/applications/main/bad_kb/bad_kb_app_i.h +++ b/applications/main/bad_kb/bad_kb_app_i.h @@ -80,7 +80,7 @@ struct BadKbApp { FuriHalUsbInterface* usb_prev_mode; GapPairing bt_prev_mode; - FuriThread *bt_init_thread; + FuriThread* conn_init_thread; }; typedef enum {