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

write QR codes for addresses to file

Struan Clark 2 лет назад
Родитель
Сommit
99adebd1e4
2 измененных файлов с 13 добавлено и 5 удалено
  1. 3 4
      helpers/flipbip_file.c
  2. 10 1
      views/flipbip_scene_1.c

+ 3 - 4
helpers/flipbip_file.c

@@ -19,10 +19,9 @@
 #define FLIPBIP_KEY_PATH FLIPBIP_APP_BASE_FOLDER_PATH(FLIPBIP_KEY_FILE_NAME)
 #define FLIPBIP_KEY_PATH_BAK FLIPBIP_APP_BASE_FOLDER_PATH(FLIPBIP_KEY_FILE_NAME_BAK)
 
-#define TEXT_QRFILE_EXT ".qrcode"
 const char* TEXT_QRFILE = "Filetype: QRCode\n"
                           "Version: 0\n"
-                          "Message: ";
+                          "Message: "; // 37 chars + 1 null
 
 const size_t FILE_HLEN = 4;
 const size_t FILE_KLEN = 256;
@@ -125,8 +124,8 @@ bool flipbip_save_settings(
         path = FLIPBIP_DAT_PATH;
         path_bak = FLIPBIP_DAT_PATH_BAK;
     } else {
-        char path_buf[32] = {0};
-        strcpy(path_buf, FLIPBIP_APP_BASE_FOLDER);
+        char path_buf[48] = {0};
+        strcpy(path_buf, FLIPBIP_APP_BASE_FOLDER); // 22
         strcpy(path_buf + strlen(path_buf), "/");
         strcpy(path_buf + strlen(path_buf), file_name);
         path = path_buf;

+ 10 - 1
views/flipbip_scene_1.c

@@ -50,6 +50,7 @@ const char* TEXT_INFO = "-Scroll pages with up/down-"
                         "p8+)    Receive Addresses  ";
 
 #define TEXT_SAVE_QR "Save QR"
+#define TEXT_QRFILE_EXT ".qrcode" // 7 chars + 1 null
 
 // bip44_coin, xprv_version, xpub_version, addr_version, wif_version, addr_format
 const uint32_t COIN_INFO_ARRAY[3][6] = {
@@ -445,10 +446,18 @@ static int flipbip_scene_1_model_init(
     model->node = node;
 
     // Initialize addresses
-    for(int a = 0; a < NUM_ADDRS; a++) {
+    for(uint8_t a = 0; a < NUM_ADDRS; a++) {
         model->recv_addresses[a] = malloc(MAX_ADDR_LEN);
         memzero(model->recv_addresses[a], MAX_ADDR_LEN);
         flipbip_scene_1_init_address(model->recv_addresses[a], node, coin_info[5], a);
+
+        // Save QR code file
+        char name[14] = {0};
+        strcpy(name, COIN_TEXT_ARRAY[coin][0]);
+        const unsigned char addr_num[1] = {a};
+        flipbip_btox(addr_num, 1, name + strlen(name));
+        strcpy(name + strlen(name), TEXT_QRFILE_EXT);
+        flipbip_save_qrfile(COIN_TEXT_ARRAY[coin][2], model->recv_addresses[a], name);
     }
 
     model->page = PAGE_INFO;