From c8e3d9b0407eb7c3f801dbf52e85fc315d5e3b0c Mon Sep 17 00:00:00 2001 From: DerSkythe Date: Sat, 24 Sep 2022 22:15:09 +0400 Subject: [PATCH] fix repeat call of view_dispatcher_alloc --- .../subbrute/scenes/subbrute_scene_start.c | 2 +- applications/plugins/subbrute/subbrute.c | 17 +++++++++-------- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/applications/plugins/subbrute/scenes/subbrute_scene_start.c b/applications/plugins/subbrute/scenes/subbrute_scene_start.c index ffc976c61..43b1b413d 100644 --- a/applications/plugins/subbrute/scenes/subbrute_scene_start.c +++ b/applications/plugins/subbrute/scenes/subbrute_scene_start.c @@ -19,9 +19,9 @@ void subbrute_scene_start_on_enter(void* context) { subbrute_main_view_set_callback(view, subbrute_scene_start_callback, instance); + subbrute_main_view_set_index(view, (uint8_t)instance->device->attack); view_dispatcher_switch_to_view(instance->view_dispatcher, instance->current_view); - subbrute_main_view_set_index(view, (uint8_t)instance->device->attack); } void subbrute_scene_start_on_exit(void* context) { diff --git a/applications/plugins/subbrute/subbrute.c b/applications/plugins/subbrute/subbrute.c index e2f19916a..9ae354110 100644 --- a/applications/plugins/subbrute/subbrute.c +++ b/applications/plugins/subbrute/subbrute.c @@ -59,6 +59,8 @@ SubBruteState* subbrute_alloc() { instance->scene_manager = scene_manager_alloc(&subbrute_scene_handlers, instance); instance->view_dispatcher = view_dispatcher_alloc(); + instance->gui = furi_record_open(RECORD_GUI); + view_dispatcher_enable_queue(instance->view_dispatcher); view_dispatcher_set_event_callback_context(instance->view_dispatcher, instance); view_dispatcher_set_custom_event_callback( @@ -68,17 +70,15 @@ SubBruteState* subbrute_alloc() { view_dispatcher_set_tick_event_callback( instance->view_dispatcher, subbrute_tick_event_callback, 100); - // Devices - instance->device = subbrute_device_alloc(); - - instance->gui = furi_record_open(RECORD_GUI); - instance->dialogs = furi_record_open(RECORD_DIALOGS); - instance->notifications = furi_record_open(RECORD_NOTIFICATION); - instance->view_dispatcher = view_dispatcher_alloc(); - //Dialog instance->dialogs = furi_record_open(RECORD_DIALOGS); + // Notifications + instance->notifications = furi_record_open(RECORD_NOTIFICATION); + + // Devices + instance->device = subbrute_device_alloc(); + // TextInput instance->text_input = text_input_alloc(); view_dispatcher_add_view( @@ -157,6 +157,7 @@ void subbrute_free(SubBruteState* instance) { //Dialog furi_record_close(RECORD_DIALOGS); + instance->dialogs = NULL; // Scene manager scene_manager_free(instance->scene_manager);