소스 검색

acknowledgements

Eric Betts 1 년 전
부모
커밋
e81e67e716
4개의 변경된 파일62개의 추가작업 그리고 1개의 파일을 삭제
  1. 2 0
      acknowledgements.h
  2. 47 0
      scenes/picopass_scene_acknowledgements.c
  3. 1 0
      scenes/picopass_scene_config.h
  4. 12 1
      scenes/picopass_scene_start.c

+ 2 - 0
acknowledgements.h

@@ -0,0 +1,2 @@
+const char* acknowledgements_text =
+    "The developers of Picopass would like to humbly acknowledge the work of those who came before and made this possible.\nWe stand on the shoulders of giants.\nFlavio D. Garcia, Gerhard de Koning Gans, Roel Verdult and Milosch Meriac for their research on iClass.  Martin HS (holiman) for their work on the loclass library.  Iceman and the Proxmark3 community.";

+ 47 - 0
scenes/picopass_scene_acknowledgements.c

@@ -0,0 +1,47 @@
+#include "../picopass_i.h"
+#include <dolphin/dolphin.h>
+#include "../acknowledgements.h"
+
+void picopass_scene_acknowledgements_widget_callback(
+    GuiButtonType result,
+    InputType type,
+    void* context) {
+    Picopass* picopass = context;
+    if(type == InputTypeShort) {
+        view_dispatcher_send_custom_event(picopass->view_dispatcher, result);
+    }
+}
+
+void picopass_scene_acknowledgements_on_enter(void* context) {
+    Picopass* picopass = context;
+
+    furi_string_reset(picopass->text_box_store);
+
+    FuriString* str = picopass->text_box_store;
+    furi_string_cat_printf(str, "%s\n", acknowledgements_text);
+
+    text_box_set_font(picopass->text_box, TextBoxFontText);
+    text_box_set_text(picopass->text_box, furi_string_get_cstr(picopass->text_box_store));
+    view_dispatcher_switch_to_view(picopass->view_dispatcher, PicopassViewTextBox);
+}
+
+bool picopass_scene_acknowledgements_on_event(void* context, SceneManagerEvent event) {
+    Picopass* picopass = context;
+    bool consumed = false;
+
+    if(event.type == SceneManagerEventTypeCustom) {
+        if(event.event == GuiButtonTypeLeft) {
+            consumed = scene_manager_previous_scene(picopass->scene_manager);
+        }
+    } else if(event.type == SceneManagerEventTypeBack) {
+        consumed = scene_manager_previous_scene(picopass->scene_manager);
+    }
+    return consumed;
+}
+
+void picopass_scene_acknowledgements_on_exit(void* context) {
+    Picopass* picopass = context;
+
+    // Clear views
+    text_box_reset(picopass->text_box);
+}

+ 1 - 0
scenes/picopass_scene_config.h

@@ -22,3 +22,4 @@ ADD_SCENE(picopass, key_input, KeyInput)
 ADD_SCENE(picopass, nr_mac_saved, NrMacSaved)
 ADD_SCENE(picopass, more_info, MoreInfo)
 ADD_SCENE(picopass, formats, Formats)
+ADD_SCENE(picopass, acknowledgements, Acknowledgements)

+ 12 - 1
scenes/picopass_scene_start.c

@@ -3,6 +3,7 @@ enum SubmenuIndex {
     SubmenuIndexRead,
     SubmenuIndexSaved,
     SubmenuIndexLoclass,
+    SubmenuIndexAcknowledgements,
 };
 
 void picopass_scene_start_submenu_callback(void* context, uint32_t index) {
@@ -17,9 +18,14 @@ void picopass_scene_start_on_enter(void* context) {
         submenu, "Read Card", SubmenuIndexRead, picopass_scene_start_submenu_callback, picopass);
     submenu_add_item(
         submenu, "Saved", SubmenuIndexSaved, picopass_scene_start_submenu_callback, picopass);
-
     submenu_add_item(
         submenu, "Loclass", SubmenuIndexLoclass, picopass_scene_start_submenu_callback, picopass);
+    submenu_add_item(
+        submenu,
+        "Acknowledgements",
+        SubmenuIndexAcknowledgements,
+        picopass_scene_start_submenu_callback,
+        picopass);
 
     submenu_set_selected_item(
         submenu, scene_manager_get_scene_state(picopass->scene_manager, PicopassSceneStart));
@@ -49,6 +55,11 @@ bool picopass_scene_start_on_event(void* context, SceneManagerEvent event) {
                 picopass->scene_manager, PicopassSceneStart, PicopassSceneLoclass);
             scene_manager_next_scene(picopass->scene_manager, PicopassSceneLoclass);
             consumed = true;
+        } else if(event.event == SubmenuIndexAcknowledgements) {
+            scene_manager_set_scene_state(
+                picopass->scene_manager, PicopassSceneStart, PicopassSceneAcknowledgements);
+            scene_manager_next_scene(picopass->scene_manager, PicopassSceneAcknowledgements);
+            consumed = true;
         }
     }