Skip to content
1 change: 1 addition & 0 deletions applications/main/nfc/scenes/nfc_scene_config.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ ADD_SCENE(nfc, read_success, ReadSuccess)
ADD_SCENE(nfc, read_menu, ReadMenu)
ADD_SCENE(nfc, emulate, Emulate)
ADD_SCENE(nfc, debug, Debug)
ADD_SCENE(nfc, field, Field)
ADD_SCENE(nfc, retry_confirm, RetryConfirm)
ADD_SCENE(nfc, exit_confirm, ExitConfirm)
ADD_SCENE(nfc, card_dump, CardDump)
Expand Down
9 changes: 1 addition & 8 deletions applications/main/nfc/scenes/nfc_scene_debug.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,6 @@ void nfc_scene_debug_on_enter(void* context) {

submenu_add_item(
submenu, "Field", SubmenuDebugIndexField, nfc_scene_debug_submenu_callback, nfc);
submenu_add_item(
submenu, "Apdu", SubmenuDebugIndexApdu, nfc_scene_debug_submenu_callback, nfc);

submenu_set_selected_item(
submenu, scene_manager_get_scene_state(nfc->scene_manager, NfcSceneDebug));
Expand All @@ -34,12 +32,7 @@ bool nfc_scene_debug_on_event(void* context, SceneManagerEvent event) {
if(event.event == SubmenuDebugIndexField) {
scene_manager_set_scene_state(
nfc->scene_manager, NfcSceneDebug, SubmenuDebugIndexField);
scene_manager_next_scene(nfc->scene_manager, NfcSceneNotImplemented);
consumed = true;
} else if(event.event == SubmenuDebugIndexApdu) {
scene_manager_set_scene_state(
nfc->scene_manager, NfcSceneDebug, SubmenuDebugIndexApdu);
scene_manager_next_scene(nfc->scene_manager, NfcSceneNotImplemented);
scene_manager_next_scene(nfc->scene_manager, NfcSceneField);
consumed = true;
}
}
Expand Down
33 changes: 33 additions & 0 deletions applications/main/nfc/scenes/nfc_scene_field.c
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#include "../nfc_app_i.h"

void nfc_scene_field_on_enter(void* context) {
NfcApp* nfc = context;

f_hal_nfc_low_power_mode_stop();
f_hal_nfc_poller_field_on();
Popup* popup = nfc->popup;
popup_set_header(
popup,
"Field is on\nDon't leave device\nin this mode for too long.",
64,
11,
AlignCenter,
AlignTop);
view_dispatcher_switch_to_view(nfc->view_dispatcher, NfcViewPopup);

notification_internal_message(nfc->notifications, &sequence_set_blue_255);
}

bool nfc_scene_field_on_event(void* context, SceneManagerEvent event) {
UNUSED(context);
UNUSED(event);
return false;
}

void nfc_scene_field_on_exit(void* context) {
NfcApp* nfc = context;

f_hal_nfc_low_power_mode_start();
notification_internal_message(nfc->notifications, &sequence_reset_blue);
popup_reset(nfc->popup);
}
8 changes: 4 additions & 4 deletions applications/main/nfc/scenes/nfc_scene_start.c
Original file line number Diff line number Diff line change
Expand Up @@ -72,13 +72,13 @@ bool nfc_scene_start_on_event(void* context, SceneManagerEvent event) {
scene_manager_next_scene(nfc->scene_manager, NfcSceneExtraActions);
consumed = true;
} else if(event.event == SubmenuIndexAddManually) {
scene_manager_set_scene_state(nfc->scene_manager, NfcSceneStart, NfcSceneSetType);
scene_manager_set_scene_state(
nfc->scene_manager, NfcSceneStart, SubmenuIndexAddManually);
scene_manager_next_scene(nfc->scene_manager, NfcSceneSetType);
consumed = true;
} else if(event.event == SubmenuIndexDebug) {
scene_manager_set_scene_state(
nfc->scene_manager, NfcSceneStart, NfcSceneNotImplemented);
scene_manager_next_scene(nfc->scene_manager, NfcSceneNotImplemented);
scene_manager_set_scene_state(nfc->scene_manager, NfcSceneStart, SubmenuIndexDebug);
scene_manager_next_scene(nfc->scene_manager, NfcSceneDebug);
consumed = true;
}
}
Expand Down