zinongli 11 месяцев назад
Родитель
Сommit
646da44985
3 измененных файлов с 150 добавлено и 2 удалено
  1. 72 0
      api/metroflip/metroflip_api.h
  2. 75 2
      api/metroflip/metroflip_api_table_i.h
  3. 3 0
      scenes/metroflip_scene_load.c

+ 72 - 0
api/metroflip/metroflip_api.h

@@ -136,6 +136,78 @@ void show_ravkav_environment_info(RavKavCardEnv* environment, FuriString* parsed
 extern const Icon I_RFIDDolphinReceive_97x61;
 extern const Icon I_icon;
 
+extern const Icon I_Suica_AsakusaA;
+extern const Icon I_Suica_BigStar;
+extern const Icon I_Suica_ChiyodaC;
+extern const Icon I_Suica_CrackingEgg;
+extern const Icon I_Suica_DashLine;
+extern const Icon I_Suica_EmptyArrowDown;
+extern const Icon I_Suica_EmptyArrowRight;
+extern const Icon I_Suica_FilledArrowDown;
+extern const Icon I_Suica_FilledArrowRight;
+extern const Icon I_Suica_GinzaG;
+extern const Icon I_Suica_HanzomonZ;
+extern const Icon I_Suica_HibiyaH;
+extern const Icon I_Suica_JRLogo;
+extern const Icon I_Suica_KeikyuKK;
+extern const Icon I_Suica_KeikyuLogo;
+extern const Icon I_Suica_MarunouchiHonanchoMb;
+extern const Icon I_Suica_MarunouchiM;
+extern const Icon I_Suica_MinusSign0;
+extern const Icon I_Suica_MinusSign1;
+extern const Icon I_Suica_MinusSign2;
+extern const Icon I_Suica_MinusSign3;
+extern const Icon I_Suica_MinusSign4;
+extern const Icon I_Suica_MinusSign5;
+extern const Icon I_Suica_MinusSign6;
+extern const Icon I_Suica_MinusSign7;
+extern const Icon I_Suica_MinusSign8;
+extern const Icon I_Suica_MinusSign9;
+extern const Icon I_Suica_MitaI;
+extern const Icon I_Suica_NambokuN;
+extern const Icon I_Suica_Nothing;
+extern const Icon I_Suica_OedoE;
+extern const Icon I_Suica_PenguinHappyBirthday;
+extern const Icon I_Suica_PenguinTodaysVIP;
+extern const Icon I_Suica_PlusSign1;
+extern const Icon I_Suica_PlusSign2;
+extern const Icon I_Suica_PlusSign3;
+extern const Icon I_Suica_PlusStar;
+extern const Icon I_Suica_QuestionMarkBig;
+extern const Icon I_Suica_QuestionMarkSmall;
+extern const Icon I_Suica_RinkaiR;
+extern const Icon I_Suica_ShinjukuS;
+extern const Icon I_Suica_ShopPin;
+extern const Icon I_Suica_SmallStar;
+extern const Icon I_Suica_StoreFan1;
+extern const Icon I_Suica_StoreFan2;
+extern const Icon I_Suica_StoreFrame;
+extern const Icon I_Suica_StoreLightningHorizontal;
+extern const Icon I_Suica_StoreLightningVertical;
+extern const Icon I_Suica_StoreP1Counter;
+extern const Icon I_Suica_StoreReceiptDashLine;
+extern const Icon I_Suica_StoreReceiptFrame1;
+extern const Icon I_Suica_StoreReceiptFrame2;
+extern const Icon I_Suica_StoreSlidingDoor;
+extern const Icon I_Suica_TWRLogo;
+extern const Icon I_Suica_ToeiLogo;
+extern const Icon I_Suica_TokyoMetroLogo;
+extern const Icon I_Suica_TokyoMonorailLogo;
+extern const Icon I_Suica_TozaiT;
+extern const Icon I_Suica_VendingCan1;
+extern const Icon I_Suica_VendingCan2;
+extern const Icon I_Suica_VendingCan3;
+extern const Icon I_Suica_VendingCan4;
+extern const Icon I_Suica_VendingFlap1;
+extern const Icon I_Suica_VendingFlap2;
+extern const Icon I_Suica_VendingFlap3;
+extern const Icon I_Suica_VendingFlapHollow;
+extern const Icon I_Suica_VendingMachine;
+extern const Icon I_Suica_VendingPage2Full;
+extern const Icon I_Suica_YenKanji;
+extern const Icon I_Suica_YenSign;
+extern const Icon I_Suica_YurakuchoY;
+
 /*******************/
 #ifdef __cplusplus
 }

+ 75 - 2
api/metroflip/metroflip_api_table_i.h

@@ -69,6 +69,79 @@ static constexpr auto metroflip_api_table = sort(create_array_t<sym_entry>(
     API_METHOD(show_ravkav_event_info, void, (RavKavCardEvent*, FuriString*)),
     API_METHOD(show_ravkav_contract_info, void, (RavKavCardContract*, FuriString*)),
     API_METHOD(show_ravkav_environment_info, void, (RavKavCardEnv*, FuriString*)),
-    
+
     API_VARIABLE(I_RFIDDolphinReceive_97x61, Icon),
-    API_VARIABLE(I_icon,Icon)));
+    API_VARIABLE(I_icon, Icon),
+    // Suica
+
+    API_VARIABLE(I_Suica_AsakusaA, Icon),
+    API_VARIABLE(I_Suica_BigStar, Icon),
+    API_VARIABLE(I_Suica_ChiyodaC, Icon),
+    API_VARIABLE(I_Suica_CrackingEgg, Icon),
+    API_VARIABLE(I_Suica_DashLine, Icon),
+    API_VARIABLE(I_Suica_EmptyArrowDown, Icon),
+    API_VARIABLE(I_Suica_EmptyArrowRight, Icon),
+    API_VARIABLE(I_Suica_FilledArrowDown, Icon),
+    API_VARIABLE(I_Suica_FilledArrowRight, Icon),
+    API_VARIABLE(I_Suica_GinzaG, Icon),
+    API_VARIABLE(I_Suica_HanzomonZ, Icon),
+    API_VARIABLE(I_Suica_HibiyaH, Icon),
+    API_VARIABLE(I_Suica_JRLogo, Icon),
+    API_VARIABLE(I_Suica_KeikyuKK, Icon),
+    API_VARIABLE(I_Suica_KeikyuLogo, Icon),
+    API_VARIABLE(I_Suica_MarunouchiHonanchoMb, Icon),
+    API_VARIABLE(I_Suica_MarunouchiM, Icon),
+    API_VARIABLE(I_Suica_MinusSign0, Icon),
+    API_VARIABLE(I_Suica_MinusSign1, Icon),
+    API_VARIABLE(I_Suica_MinusSign2, Icon),
+    API_VARIABLE(I_Suica_MinusSign3, Icon),
+    API_VARIABLE(I_Suica_MinusSign4, Icon),
+    API_VARIABLE(I_Suica_MinusSign5, Icon),
+    API_VARIABLE(I_Suica_MinusSign6, Icon),
+    API_VARIABLE(I_Suica_MinusSign7, Icon),
+    API_VARIABLE(I_Suica_MinusSign8, Icon),
+    API_VARIABLE(I_Suica_MinusSign9, Icon),
+    API_VARIABLE(I_Suica_MitaI, Icon),
+    API_VARIABLE(I_Suica_NambokuN, Icon),
+    API_VARIABLE(I_Suica_Nothing, Icon),
+    API_VARIABLE(I_Suica_OedoE, Icon),
+    API_VARIABLE(I_Suica_PenguinHappyBirthday, Icon),
+    API_VARIABLE(I_Suica_PenguinTodaysVIP, Icon),
+    API_VARIABLE(I_Suica_PlusSign1, Icon),
+    API_VARIABLE(I_Suica_PlusSign2, Icon),
+    API_VARIABLE(I_Suica_PlusSign3, Icon),
+    API_VARIABLE(I_Suica_PlusStar, Icon),
+    API_VARIABLE(I_Suica_QuestionMarkBig, Icon),
+    API_VARIABLE(I_Suica_QuestionMarkSmall, Icon),
+    API_VARIABLE(I_Suica_RinkaiR, Icon),
+    API_VARIABLE(I_Suica_ShinjukuS, Icon),
+    API_VARIABLE(I_Suica_ShopPin, Icon),
+    API_VARIABLE(I_Suica_SmallStar, Icon),
+    API_VARIABLE(I_Suica_StoreFan1, Icon),
+    API_VARIABLE(I_Suica_StoreFan2, Icon),
+    API_VARIABLE(I_Suica_StoreFrame, Icon),
+    API_VARIABLE(I_Suica_StoreLightningHorizontal, Icon),
+    API_VARIABLE(I_Suica_StoreLightningVertical, Icon),
+    API_VARIABLE(I_Suica_StoreP1Counter, Icon),
+    API_VARIABLE(I_Suica_StoreReceiptDashLine, Icon),
+    API_VARIABLE(I_Suica_StoreReceiptFrame1, Icon),
+    API_VARIABLE(I_Suica_StoreReceiptFrame2, Icon),
+    API_VARIABLE(I_Suica_StoreSlidingDoor, Icon),
+    API_VARIABLE(I_Suica_TWRLogo, Icon),
+    API_VARIABLE(I_Suica_ToeiLogo, Icon),
+    API_VARIABLE(I_Suica_TokyoMetroLogo, Icon),
+    API_VARIABLE(I_Suica_TokyoMonorailLogo, Icon),
+    API_VARIABLE(I_Suica_TozaiT, Icon),
+    API_VARIABLE(I_Suica_VendingCan1, Icon),
+    API_VARIABLE(I_Suica_VendingCan2, Icon),
+    API_VARIABLE(I_Suica_VendingCan3, Icon),
+    API_VARIABLE(I_Suica_VendingCan4, Icon),
+    API_VARIABLE(I_Suica_VendingFlap1, Icon),
+    API_VARIABLE(I_Suica_VendingFlap2, Icon),
+    API_VARIABLE(I_Suica_VendingFlap3, Icon),
+    API_VARIABLE(I_Suica_VendingFlapHollow, Icon),
+    API_VARIABLE(I_Suica_VendingMachine, Icon),
+    API_VARIABLE(I_Suica_VendingPage2Full, Icon),
+    API_VARIABLE(I_Suica_YenKanji, Icon),
+    API_VARIABLE(I_Suica_YenSign, Icon),
+    API_VARIABLE(I_Suica_YurakuchoY, Icon)));

+ 3 - 0
scenes/metroflip_scene_load.c

@@ -4,6 +4,7 @@
 #include <bit_lib.h>
 #include <lib/nfc/protocols/nfc_protocol.h>
 #include "../api/metroflip/metroflip_api.h"
+#include "../api/suica/suica_loading.h"
 #define TAG "Metroflip:Scene:Load"
 
 void metroflip_scene_load_on_enter(void* context) {
@@ -28,6 +29,7 @@ void metroflip_scene_load_on_enter(void* context) {
             if(!flipper_format_file_open_existing(format, furi_string_get_cstr(file_path))) break;
             if(!flipper_format_read_string(format, "Card Type", card_type)) break;
             if(furi_string_equal_str(card_type, "suica")) {
+                load_suica_data(app, format);
             }
             app->data_loaded = true;
         } while(0);
@@ -37,6 +39,7 @@ void metroflip_scene_load_on_enter(void* context) {
     if(app->data_loaded) {
         // Direct to the parsing screen just like the auto scene does
         app->card_type = furi_string_get_cstr(card_type);
+        FURI_LOG_I(TAG, "Card type: %s", app->card_type);
         scene_manager_next_scene(app->scene_manager, MetroflipSceneParse);
     } else {
         scene_manager_next_scene(app->scene_manager, MetroflipSceneStart);