|
@@ -20,6 +20,7 @@ void seader_scene_read_14a_on_enter(void* context) {
|
|
|
view_dispatcher_switch_to_view(seader->view_dispatcher, SeaderViewPopup);
|
|
view_dispatcher_switch_to_view(seader->view_dispatcher, SeaderViewPopup);
|
|
|
|
|
|
|
|
seader->poller = nfc_poller_alloc(seader->nfc, NfcProtocolIso14443_4a);
|
|
seader->poller = nfc_poller_alloc(seader->nfc, NfcProtocolIso14443_4a);
|
|
|
|
|
+ nfc_poller_start(seader->poller, seader_worker_poller_callback_iso14443_4a, seader);
|
|
|
|
|
|
|
|
seader_blink_start(seader);
|
|
seader_blink_start(seader);
|
|
|
}
|
|
}
|
|
@@ -30,18 +31,12 @@ bool seader_scene_read_14a_on_event(void* context, SceneManagerEvent event) {
|
|
|
|
|
|
|
|
if(event.type == SceneManagerEventTypeCustom) {
|
|
if(event.type == SceneManagerEventTypeCustom) {
|
|
|
if(event.event == SeaderCustomEventWorkerExit) {
|
|
if(event.event == SeaderCustomEventWorkerExit) {
|
|
|
- nfc_poller_stop(seader->poller);
|
|
|
|
|
- nfc_poller_free(seader->poller);
|
|
|
|
|
seader->credential->type = SeaderCredentialType14A;
|
|
seader->credential->type = SeaderCredentialType14A;
|
|
|
scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess);
|
|
scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess);
|
|
|
consumed = true;
|
|
consumed = true;
|
|
|
}
|
|
}
|
|
|
} else if(event.type == SceneManagerEventTypeBack) {
|
|
} else if(event.type == SceneManagerEventTypeBack) {
|
|
|
- nfc_poller_stop(seader->poller);
|
|
|
|
|
- nfc_poller_free(seader->poller);
|
|
|
|
|
- static const uint32_t possible_scenes[] = {SeaderSceneStart};
|
|
|
|
|
- scene_manager_search_and_switch_to_previous_scene_one_of(
|
|
|
|
|
- seader->scene_manager, possible_scenes, COUNT_OF(possible_scenes));
|
|
|
|
|
|
|
+ scene_manager_search_and_switch_to_previous_scene(seader->scene_manager, SeaderSceneStart);
|
|
|
consumed = true;
|
|
consumed = true;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -51,6 +46,11 @@ bool seader_scene_read_14a_on_event(void* context, SceneManagerEvent event) {
|
|
|
void seader_scene_read_14a_on_exit(void* context) {
|
|
void seader_scene_read_14a_on_exit(void* context) {
|
|
|
Seader* seader = context;
|
|
Seader* seader = context;
|
|
|
|
|
|
|
|
|
|
+ if (seader->poller) {
|
|
|
|
|
+ nfc_poller_stop(seader->poller);
|
|
|
|
|
+ nfc_poller_free(seader->poller);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
// Clear view
|
|
// Clear view
|
|
|
popup_reset(seader->popup);
|
|
popup_reset(seader->popup);
|
|
|
|
|
|