Eric Betts 2 лет назад
Родитель
Сommit
7e0c65947f
3 измененных файлов с 10 добавлено и 1 удалено
  1. 1 1
      sam_api.c
  2. 4 0
      scenes/seader_scene_read_14a.c
  3. 5 0
      scenes/seader_scene_read_picopass.c

+ 1 - 1
sam_api.c

@@ -282,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++) {

+ 4 - 0
scenes/seader_scene_read_14a.c

@@ -31,6 +31,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 == 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(

+ 5 - 0
scenes/seader_scene_read_picopass.c

@@ -30,7 +30,12 @@ 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, SeaderSceneSamPresent);