MX 2 лет назад
Родитель
Сommit
fd66bd51c6
3 измененных файлов с 14 добавлено и 4 удалено
  1. 1 2
      sam_api.c
  2. 6 1
      scenes/seader_scene_read_14a.c
  3. 7 1
      scenes/seader_scene_read_picopass.c

+ 1 - 2
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++) {

+ 6 - 1
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;
     }
 

+ 7 - 1
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;