Fix slow redundant reads for SubGhz files

This commit is contained in:
Willy-JL
2023-10-14 21:16:36 +01:00
parent 7fdda0bb84
commit 04dc10dc7f

View File

@@ -139,16 +139,14 @@ bool subghz_key_load(SubGhz* subghz, const char* file_path, bool show_dialog) {
}
}
//Load latitute and longitude if present
if(!flipper_format_read_float(fff_data_file, "Latitute", (float*)&temp_lat, 1)) {
FURI_LOG_E(TAG, "Missing Latitude (optional)");
//Load latitute and longitude if present, strict mode to avoid reading the whole file twice
flipper_format_set_strict_mode(fff_data_file, true);
if(!flipper_format_read_float(fff_data_file, "Latitute", (float*)&temp_lat, 1) ||
!flipper_format_read_float(fff_data_file, "Longitude", (float*)&temp_lon, 1)) {
FURI_LOG_W(TAG, "Missing Latitude and Longitude (optional)");
flipper_format_rewind(fff_data_file);
}
flipper_format_rewind(fff_data_file);
if(!flipper_format_read_float(fff_data_file, "Longitude", (float*)&temp_lon, 1)) {
FURI_LOG_E(TAG, "Missing Longitude (optional)");
}
flipper_format_rewind(fff_data_file);
flipper_format_set_strict_mode(fff_data_file, false);
size_t preset_index =
subghz_setting_get_inx_preset_by_name(setting, furi_string_get_cstr(temp_str));