Просмотр исходного кода

Picopass config se problem (#90)

Co-authored-by: あく <alleteam@gmail.com>
Eric Betts 2 лет назад
Родитель
Сommit
b8bcc6f21e
2 измененных файлов с 15 добавлено и 4 удалено
  1. 2 0
      .catalog/changelog.md
  2. 13 4
      scenes/picopass_scene_read_card_success.c

+ 2 - 0
.catalog/changelog.md

@@ -2,6 +2,8 @@
  - Update working with keys with new API
  - Display more tag information
  - Add additional keys to elite dict
+ - Correct config card detection so it doesn't happen for SE cards (read using nr-mac partial read)
+ - Have back button go to start menu instead of read retry
 ## 1.10
  - Fix missing folder in readme
  - Allow partial save for any read failure

+ 13 - 4
scenes/picopass_scene_read_card_success.c

@@ -52,7 +52,6 @@ void picopass_scene_read_card_success_on_enter(void* context) {
 
         if(pacs->se_enabled) {
             furi_string_cat_printf(credential_str, "SE enabled");
-
         } else if(!hid_csn) {
             furi_string_cat_printf(credential_str, "Non-HID CSN");
         }
@@ -69,6 +68,15 @@ void picopass_scene_read_card_success_on_enter(void* context) {
             "More",
             picopass_scene_read_card_success_widget_callback,
             picopass);
+    } else if(pacs->se_enabled) {
+        furi_string_cat_printf(credential_str, "SE enabled");
+        furi_string_cat_printf(wiegand_str, "SIO");
+        widget_add_button_element(
+            widget,
+            GuiButtonTypeRight,
+            "More",
+            picopass_scene_read_card_success_widget_callback,
+            picopass);
     } else if(configCard) {
         furi_string_cat_printf(wiegand_str, "Config Card");
     } else if(empty) {
@@ -86,9 +94,6 @@ void picopass_scene_read_card_success_on_enter(void* context) {
         } else {
             furi_string_cat_printf(wiegand_str, "Invalid PACS");
         }
-        if(pacs->se_enabled) {
-            furi_string_cat_printf(credential_str, "SE enabled");
-        }
         widget_add_button_element(
             widget,
             GuiButtonTypeCenter,
@@ -190,6 +195,10 @@ bool picopass_scene_read_card_success_on_event(void* context, SceneManagerEvent
             consumed = scene_manager_search_and_switch_to_another_scene(
                 picopass->scene_manager, PicopassSceneStart);
         }
+    } else if(event.type == SceneManagerEventTypeBack) {
+        scene_manager_search_and_switch_to_previous_scene(
+            picopass->scene_manager, PicopassSceneStart);
+        consumed = true;
     }
     return consumed;
 }