Skip to content

Commit

Permalink
make NFC emulation loading from favourites faster
Browse files Browse the repository at this point in the history
  • Loading branch information
xMasterX committed Jun 14, 2024
1 parent c40a63e commit 2cbd058
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -719,7 +719,7 @@ static bool nfc_protocol_support_scene_rpc_on_event(NfcApp* instance, SceneManag
if(event.event == NfcCustomEventRpcLoadFile) {
bool success = false;
if(instance->rpc_state == NfcRpcStateIdle) {
if(nfc_load_file(instance, instance->file_path, false)) {
if(nfc_load_file(instance, instance->file_path, false, false)) {
nfc_protocol_support_scene_rpc_setup_ui_and_emulate(instance);
success = true;
}
Expand Down
10 changes: 6 additions & 4 deletions applications/main/nfc/nfc_app.c
Original file line number Diff line number Diff line change
Expand Up @@ -340,12 +340,14 @@ bool nfc_save(NfcApp* instance) {
return nfc_save_internal(instance, NFC_APP_EXTENSION);
}

bool nfc_load_file(NfcApp* instance, FuriString* path, bool show_dialog) {
bool nfc_load_file(NfcApp* instance, FuriString* path, bool show_dialog, bool load_plugins) {
furi_assert(instance);
furi_assert(path);
bool result = false;

nfc_supported_cards_load_cache(instance->nfc_supported_cards);
if(load_plugins) {
nfc_supported_cards_load_cache(instance->nfc_supported_cards);
}

FuriString* load_path = furi_string_alloc();
if(nfc_has_shadow_file_internal(instance, path)) { //-V1051
Expand Down Expand Up @@ -414,7 +416,7 @@ bool nfc_load_from_file_select(NfcApp* instance) {
if(!dialog_file_browser_show(
instance->dialogs, instance->file_path, instance->file_path, &browser_options))
break;
success = nfc_load_file(instance, instance->file_path, true);
success = nfc_load_file(instance, instance->file_path, true, true);
} while(!success);

return success;
Expand Down Expand Up @@ -507,7 +509,7 @@ int32_t nfc_app(void* p) {
nfc->view_dispatcher, nfc->gui, ViewDispatcherTypeFullscreen);

furi_string_set(nfc->file_path, args);
if(nfc_load_file(nfc, nfc->file_path, false)) {
if(nfc_load_file(nfc, nfc->file_path, false, false)) {
nfc_show_initial_scene_for_device(nfc);
} else {
view_dispatcher_stop(nfc->view_dispatcher);
Expand Down
2 changes: 1 addition & 1 deletion applications/main/nfc/nfc_app_i.h
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@ bool nfc_delete(NfcApp* instance);

bool nfc_load_from_file_select(NfcApp* instance);

bool nfc_load_file(NfcApp* instance, FuriString* path, bool show_dialog);
bool nfc_load_file(NfcApp* instance, FuriString* path, bool show_dialog, bool load_plugins);

bool nfc_save_file(NfcApp* instance, FuriString* path);

Expand Down
2 changes: 1 addition & 1 deletion applications/main/nfc/scenes/nfc_scene_restore_original.c
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ bool nfc_scene_restore_original_on_event(void* context, SceneManagerEvent event)

if(event.type == SceneManagerEventTypeCustom) {
if(event.event == NfcCustomEventViewExit) {
if(nfc_load_file(nfc, nfc->file_path, false)) {
if(nfc_load_file(nfc, nfc->file_path, false, false)) {
consumed = scene_manager_search_and_switch_to_previous_scene(
nfc->scene_manager, NfcSceneSavedMenu);
} else {
Expand Down

0 comments on commit 2cbd058

Please sign in to comment.