change UI when card detected

This commit is contained in:
Eric Betts
2023-11-26 15:40:00 -08:00
parent 2882ea383d
commit 0aaaf5a5f4
5 changed files with 21 additions and 0 deletions
+4
View File
@@ -32,6 +32,10 @@ bool seader_scene_read_14a_on_event(void* context, SceneManagerEvent event) {
seader->credential->type = SeaderCredentialType14A;
scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess);
consumed = true;
} else if(event.event == SeaderCustomEventPollerDetect) {
Popup* popup = seader->popup;
popup_set_header(popup, "DON'T\nMOVE", 68, 30, AlignLeft, AlignTop);
consumed = true;
} else if(event.event == SeaderCustomEventPollerSuccess) {
seader->credential->type = SeaderCredentialType14A;
scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess);
+4
View File
@@ -36,6 +36,10 @@ bool seader_scene_read_mfc_on_event(void* context, SceneManagerEvent event) {
seader->credential->type = SeaderCredentialTypeMifareClassic;
scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess);
consumed = true;
} else if(event.event == SeaderCustomEventPollerDetect) {
Popup* popup = seader->popup;
popup_set_header(popup, "DON'T\nMOVE", 68, 30, AlignLeft, AlignTop);
consumed = true;
} else if(event.event == SeaderCustomEventPollerSuccess) {
seader->credential->type = SeaderCredentialTypeMifareClassic;
scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess);
+4
View File
@@ -31,6 +31,10 @@ bool seader_scene_read_picopass_on_event(void* context, SceneManagerEvent event)
seader->credential->type = SeaderCredentialTypePicopass;
scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess);
consumed = true;
} else if(event.event == SeaderCustomEventPollerDetect) {
Popup* popup = seader->popup;
popup_set_header(popup, "DON'T\nMOVE", 68, 30, AlignLeft, AlignTop);
consumed = true;
} else if(event.event == SeaderCustomEventPollerSuccess) {
seader->credential->type = SeaderCredentialTypePicopass;
scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess);
+1
View File
@@ -69,6 +69,7 @@ enum SeaderCustomEvent {
SeaderCustomEventByteInputDone,
SeaderCustomEventTextInputDone,
SeaderCustomEventPollerDetect,
SeaderCustomEventPollerSuccess,
};
+8
View File
@@ -265,6 +265,9 @@ NfcCommand seader_worker_poller_callback_iso14443_4a(NfcGenericEvent event, void
if(iso14443_4a_event->type == Iso14443_4aPollerEventTypeReady) {
if(seader_worker->stage == SeaderPollerEventTypeCardDetect) {
view_dispatcher_send_custom_event(
seader->view_dispatcher, SeaderCustomEventPollerDetect);
nfc_device_set_data(
seader->nfc_device, NfcProtocolIso14443_4a, nfc_poller_get_data(seader->poller));
@@ -319,6 +322,9 @@ NfcCommand seader_worker_poller_callback_mfc(NfcGenericEvent event, void* contex
if(mfc_event->type == MfClassicPollerEventTypeSuccess) {
if(seader_worker->stage == SeaderPollerEventTypeCardDetect) {
view_dispatcher_send_custom_event(
seader->view_dispatcher, SeaderCustomEventPollerDetect);
const MfClassicData* mfc_data = nfc_poller_get_data(seader->poller);
uint8_t sak = iso14443_3a_get_sak(mfc_data->iso14443_3a_data);
size_t uid_len = 0;
@@ -354,6 +360,8 @@ NfcCommand seader_worker_poller_callback_picopass(PicopassPollerEvent event, voi
seader_worker->stage = SeaderPollerEventTypeCardDetect;
} else if(event.type == PicopassPollerEventTypeSuccess) {
if(seader_worker->stage == SeaderPollerEventTypeCardDetect) {
view_dispatcher_send_custom_event(
seader->view_dispatcher, SeaderCustomEventPollerDetect);
uint8_t* csn = picopass_poller_get_csn(instance);
seader_worker_card_detect(seader, 0, NULL, csn, sizeof(PicopassSerialNum), NULL, 0);
furi_thread_set_current_priority(FuriThreadPriorityLowest);