diff --git a/non_catalog_apps/seader/sam_api.c b/non_catalog_apps/seader/sam_api.c index d48282158fd..7f877bd4a5c 100644 --- a/non_catalog_apps/seader/sam_api.c +++ b/non_catalog_apps/seader/sam_api.c @@ -267,7 +267,6 @@ bool seader_parse_version(SeaderWorker* seader_worker, uint8_t* buf, size_t size bool seader_parse_sam_response(Seader* seader, SamResponse_t* samResponse) { SeaderWorker* seader_worker = seader->worker; SeaderUartBridge* seader_uart = seader_worker->uart; - FURI_LOG_D(TAG, "seader_parse_sam_response"); if(samResponse->size == 0) { if(requestPacs) { @@ -283,7 +282,7 @@ bool seader_parse_sam_response(Seader* seader, SamResponse_t* samResponse) { } else if(seader_parse_version(seader_worker, samResponse->buf, samResponse->size)) { // no-op } else if(seader_unpack_pacs(seader, samResponse->buf, samResponse->size)) { - view_dispatcher_send_custom_event(seader->view_dispatcher, SeaderCustomEventWorkerExit); + view_dispatcher_send_custom_event(seader->view_dispatcher, SeaderCustomEventPollerSuccess); } else { memset(display, 0, sizeof(display)); for(uint8_t i = 0; i < samResponse->size; i++) { diff --git a/non_catalog_apps/seader/scenes/seader_scene_read_14a.c b/non_catalog_apps/seader/scenes/seader_scene_read_14a.c index 144a5f3bc79..6538fce4cb9 100644 --- a/non_catalog_apps/seader/scenes/seader_scene_read_14a.c +++ b/non_catalog_apps/seader/scenes/seader_scene_read_14a.c @@ -31,9 +31,14 @@ 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 == SeaderCustomEventPollerSuccess) { + seader->credential->type = SeaderCredentialType14A; + scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess); + consumed = true; } } else if(event.type == SceneManagerEventTypeBack) { - scene_manager_search_and_switch_to_previous_scene(seader->scene_manager, SeaderSceneStart); + scene_manager_search_and_switch_to_previous_scene( + seader->scene_manager, SeaderSceneSamPresent); consumed = true; } diff --git a/non_catalog_apps/seader/scenes/seader_scene_read_picopass.c b/non_catalog_apps/seader/scenes/seader_scene_read_picopass.c index a68e9eb6e57..e1faa0eed75 100644 --- a/non_catalog_apps/seader/scenes/seader_scene_read_picopass.c +++ b/non_catalog_apps/seader/scenes/seader_scene_read_picopass.c @@ -30,9 +30,15 @@ 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 == SeaderCustomEventPollerSuccess) { + seader->credential->type = SeaderCredentialTypePicopass; + scene_manager_next_scene(seader->scene_manager, SeaderSceneReadCardSuccess); + consumed = true; } + } else if(event.type == SceneManagerEventTypeBack) { - scene_manager_search_and_switch_to_previous_scene(seader->scene_manager, SeaderSceneStart); + scene_manager_search_and_switch_to_previous_scene( + seader->scene_manager, SeaderSceneSamPresent); consumed = true; } return consumed;