From 30c2676d60ec6d55f61e7d1d05d1c07a72152c2e Mon Sep 17 00:00:00 2001 From: MX <10697207+xMasterX@users.noreply.github.com> Date: Sun, 28 Jul 2024 19:46:35 +0300 Subject: [PATCH] subghz fix crash and wrong states --- .../main/subghz/scenes/subghz_scene_frequency_analyzer.c | 5 +++-- applications/main/subghz/scenes/subghz_scene_receiver.c | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/applications/main/subghz/scenes/subghz_scene_frequency_analyzer.c b/applications/main/subghz/scenes/subghz_scene_frequency_analyzer.c index 2a0b5e498..9e5289c54 100644 --- a/applications/main/subghz/scenes/subghz_scene_frequency_analyzer.c +++ b/applications/main/subghz/scenes/subghz_scene_frequency_analyzer.c @@ -69,8 +69,9 @@ bool subghz_scene_frequency_analyzer_on_event(void* context, SceneManagerEvent e return true; } else if(event.event == SubGhzCustomEventViewFreqAnalOkLong) { - // Don't need to save, we already saved on short event - //scene_manager_set_scene_state(subghz->scene_manager, SubGhzSceneStart, 10); + // Don't need to save, we already saved on short event (and on exit event too) + subghz_rx_key_state_set(subghz, SubGhzRxKeyStateIDLE); + scene_manager_set_scene_state(subghz->scene_manager, SubGhzSceneStart, 10); scene_manager_next_scene(subghz->scene_manager, SubGhzSceneReceiver); return true; } diff --git a/applications/main/subghz/scenes/subghz_scene_receiver.c b/applications/main/subghz/scenes/subghz_scene_receiver.c index 01b46d248..1a0063418 100644 --- a/applications/main/subghz/scenes/subghz_scene_receiver.c +++ b/applications/main/subghz/scenes/subghz_scene_receiver.c @@ -146,11 +146,11 @@ static void subghz_scene_add_to_history_callback( if(subghz_history_get_text_space_left(subghz->history, NULL)) { notification_message(subghz->notifications, &sequence_error); } + subghz_rx_key_state_set(subghz, SubGhzRxKeyStateAddKey); } subghz_receiver_reset(receiver); furi_string_free(item_name); furi_string_free(item_time); - subghz_rx_key_state_set(subghz, SubGhzRxKeyStateAddKey); } else { FURI_LOG_D(TAG, "%s protocol ignored", decoder_base->protocol->name); }