Show region information in sub-GHz app (#2249)
* Show region info in sub-GHz app * SubGhz: reset widget on region info scene exit * Format sources Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		
							
								
								
									
										39
									
								
								applications/main/subghz/scenes/subghz_scene_region_info.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								applications/main/subghz/scenes/subghz_scene_region_info.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
#include "../subghz_i.h"
 | 
			
		||||
 | 
			
		||||
#include <furi_hal_region.h>
 | 
			
		||||
 | 
			
		||||
void subghz_scene_region_info_on_enter(void* context) {
 | 
			
		||||
    SubGhz* subghz = context;
 | 
			
		||||
    const FuriHalRegion* const region = furi_hal_region_get();
 | 
			
		||||
    FuriString* buffer;
 | 
			
		||||
    buffer = furi_string_alloc();
 | 
			
		||||
    if(region) {
 | 
			
		||||
        furi_string_cat_printf(buffer, "Region: %s,  bands:\n", region->country_code);
 | 
			
		||||
        for(uint16_t i = 0; i < region->bands_count; ++i) {
 | 
			
		||||
            furi_string_cat_printf(
 | 
			
		||||
                buffer,
 | 
			
		||||
                "   %lu-%lu kHz\n",
 | 
			
		||||
                region->bands[i].start / 1000,
 | 
			
		||||
                region->bands[i].end / 1000);
 | 
			
		||||
        }
 | 
			
		||||
    } else {
 | 
			
		||||
        furi_string_cat_printf(buffer, "Region: N/A\n");
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    widget_add_string_multiline_element(
 | 
			
		||||
        subghz->widget, 0, 0, AlignLeft, AlignTop, FontSecondary, furi_string_get_cstr(buffer));
 | 
			
		||||
 | 
			
		||||
    furi_string_free(buffer);
 | 
			
		||||
    view_dispatcher_switch_to_view(subghz->view_dispatcher, SubGhzViewIdWidget);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool subghz_scene_region_info_on_event(void* context, SceneManagerEvent event) {
 | 
			
		||||
    UNUSED(context);
 | 
			
		||||
    UNUSED(event);
 | 
			
		||||
    return false;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void subghz_scene_region_info_on_exit(void* context) {
 | 
			
		||||
    SubGhz* subghz = context;
 | 
			
		||||
    widget_reset(subghz->widget);
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user