diff --git a/applications/main/subghz/scenes/subghz_scene_need_saving.c b/applications/main/subghz/scenes/subghz_scene_need_saving.c index 3368bda04..76801f885 100644 --- a/applications/main/subghz/scenes/subghz_scene_need_saving.c +++ b/applications/main/subghz/scenes/subghz_scene_need_saving.c @@ -50,6 +50,11 @@ bool subghz_scene_need_saving_on_event(void* context, SceneManagerEvent event) { subghz_rx_key_state_set(subghz, SubGhzRxKeyStateIDLE); if(state == SubGhzRxKeyStateExit) { + if(scene_manager_has_previous_scene(subghz->scene_manager, SubGhzSceneReadRAW)) { + if(!furi_string_empty(subghz->file_path_tmp)) { + subghz_delete_file(subghz); + } + } subghz_txrx_set_preset( subghz->txrx, "AM650", subghz->last_settings->frequency, 0, 0, NULL, 0); scene_manager_search_and_switch_to_previous_scene( diff --git a/applications/main/subghz/scenes/subghz_scene_read_raw.c b/applications/main/subghz/scenes/subghz_scene_read_raw.c index 401a292c1..ca1268917 100644 --- a/applications/main/subghz/scenes/subghz_scene_read_raw.c +++ b/applications/main/subghz/scenes/subghz_scene_read_raw.c @@ -150,6 +150,11 @@ bool subghz_scene_read_raw_on_event(void* context, SceneManagerEvent event) { if((subghz_rx_key_state_get(subghz) == SubGhzRxKeyStateAddKey) || (subghz_rx_key_state_get(subghz) == SubGhzRxKeyStateBack)) { subghz_rx_key_state_set(subghz, SubGhzRxKeyStateExit); + if(subghz_scene_read_raw_update_filename(subghz)) { + furi_string_set(subghz->file_path_tmp, subghz->file_path); + } else { + furi_string_reset(subghz->file_path_tmp); + } scene_manager_next_scene(subghz->scene_manager, SubGhzSceneNeedSaving); } else { //Restore default setting