mirror of
https://github.com/Next-Flip/Momentum-Firmware.git
synced 2026-06-07 19:01:54 -07:00
SubGhz remove duplicates when decoding too
This commit is contained in:
@@ -61,6 +61,34 @@ static void subghz_scene_add_to_history_callback(
|
||||
|
||||
subghz->state_notifications = SubGhzNotificationStateRxDone;
|
||||
|
||||
if(subghz->remove_duplicates) {
|
||||
// Look in history for signal hash
|
||||
uint8_t hash_data = subghz_protocol_decoder_base_get_hash_data(decoder_base);
|
||||
uint16_t menu_idx = subghz_view_receiver_get_idx_menu(subghz->subghz_receiver);
|
||||
subghz_view_receiver_disable_draw_callback(subghz->subghz_receiver);
|
||||
for(uint16_t i = idx; i > 0; i--) {
|
||||
i--; // Iterating in reverse with off by one
|
||||
if(subghz_history_get_hash_data(subghz->history, i) == hash_data) {
|
||||
// Remove previous instance and update menu index
|
||||
subghz_history_delete_item(subghz->history, i);
|
||||
subghz_view_receiver_set_idx_menu(subghz->subghz_receiver, i);
|
||||
subghz_view_receiver_delete_element_callback(subghz->subghz_receiver);
|
||||
if(menu_idx > i) {
|
||||
menu_idx--;
|
||||
idx--;
|
||||
}
|
||||
}
|
||||
i++;
|
||||
}
|
||||
// Restore ui state
|
||||
subghz_view_receiver_set_idx_menu(subghz->subghz_receiver, menu_idx);
|
||||
subghz->idx_menu_chosen = subghz_view_receiver_get_idx_menu(subghz->subghz_receiver);
|
||||
subghz_view_receiver_enable_draw_callback(subghz->subghz_receiver);
|
||||
if(subghz_history_get_last_index(subghz->history) == 0) {
|
||||
subghz_rx_key_state_set(subghz, SubGhzRxKeyStateStart);
|
||||
}
|
||||
}
|
||||
|
||||
subghz_history_get_text_item_menu(subghz->history, item_name, idx);
|
||||
subghz_history_get_time_item_menu(subghz->history, item_time, idx);
|
||||
subghz_view_receiver_add_item_to_menu(
|
||||
|
||||
Reference in New Issue
Block a user