[FL-2961] SubGhz: properly handle storage loss (#1990)
Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		@@ -38,18 +38,34 @@ bool subghz_scene_more_raw_on_event(void* context, SceneManagerEvent event) {
 | 
			
		||||
 | 
			
		||||
    if(event.type == SceneManagerEventTypeCustom) {
 | 
			
		||||
        if(event.event == SubmenuIndexDelete) {
 | 
			
		||||
            scene_manager_set_scene_state(
 | 
			
		||||
                subghz->scene_manager, SubGhzSceneReadRAW, SubGhzCustomEventManagerNoSet);
 | 
			
		||||
            scene_manager_set_scene_state(
 | 
			
		||||
                subghz->scene_manager, SubGhzSceneMoreRAW, SubmenuIndexDelete);
 | 
			
		||||
            scene_manager_next_scene(subghz->scene_manager, SubGhzSceneDeleteRAW);
 | 
			
		||||
            return true;
 | 
			
		||||
            if(subghz_file_available(subghz)) {
 | 
			
		||||
                scene_manager_set_scene_state(
 | 
			
		||||
                    subghz->scene_manager, SubGhzSceneReadRAW, SubGhzCustomEventManagerNoSet);
 | 
			
		||||
                scene_manager_set_scene_state(
 | 
			
		||||
                    subghz->scene_manager, SubGhzSceneMoreRAW, SubmenuIndexDelete);
 | 
			
		||||
                scene_manager_next_scene(subghz->scene_manager, SubGhzSceneDeleteRAW);
 | 
			
		||||
                return true;
 | 
			
		||||
            } else {
 | 
			
		||||
                if(!scene_manager_search_and_switch_to_previous_scene(
 | 
			
		||||
                       subghz->scene_manager, SubGhzSceneStart)) {
 | 
			
		||||
                    scene_manager_stop(subghz->scene_manager);
 | 
			
		||||
                    view_dispatcher_stop(subghz->view_dispatcher);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        } else if(event.event == SubmenuIndexEdit) {
 | 
			
		||||
            furi_string_reset(subghz->file_path_tmp);
 | 
			
		||||
            scene_manager_set_scene_state(
 | 
			
		||||
                subghz->scene_manager, SubGhzSceneMoreRAW, SubmenuIndexEdit);
 | 
			
		||||
            scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSaveName);
 | 
			
		||||
            return true;
 | 
			
		||||
            if(subghz_file_available(subghz)) {
 | 
			
		||||
                furi_string_reset(subghz->file_path_tmp);
 | 
			
		||||
                scene_manager_set_scene_state(
 | 
			
		||||
                    subghz->scene_manager, SubGhzSceneMoreRAW, SubmenuIndexEdit);
 | 
			
		||||
                scene_manager_next_scene(subghz->scene_manager, SubGhzSceneSaveName);
 | 
			
		||||
                return true;
 | 
			
		||||
            } else {
 | 
			
		||||
                if(!scene_manager_search_and_switch_to_previous_scene(
 | 
			
		||||
                       subghz->scene_manager, SubGhzSceneStart)) {
 | 
			
		||||
                    scene_manager_stop(subghz->scene_manager);
 | 
			
		||||
                    view_dispatcher_stop(subghz->view_dispatcher);
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    return false;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user