Add more detail to saved info screen (#2548)
* Add more detail to saved info screen * PR feedback * Format sources and add pvs temp files to gitignore Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		
							
								
								
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -60,5 +60,6 @@ openocd.log | ||||
| # PVS Studio temporary files | ||||
| .PVS-Studio/ | ||||
| PVS-Studio.log | ||||
| *.PVS-Studio.* | ||||
|  | ||||
| .gdbinit | ||||
|   | ||||
| @@ -14,18 +14,33 @@ void picopass_scene_device_info_widget_callback( | ||||
| void picopass_scene_device_info_on_enter(void* context) { | ||||
|     Picopass* picopass = context; | ||||
|  | ||||
|     FuriString* credential_str; | ||||
|     FuriString* wiegand_str; | ||||
|     credential_str = furi_string_alloc(); | ||||
|     wiegand_str = furi_string_alloc(); | ||||
|     FuriString* csn_str = furi_string_alloc_set("CSN:"); | ||||
|     FuriString* credential_str = furi_string_alloc(); | ||||
|     FuriString* wiegand_str = furi_string_alloc(); | ||||
|     FuriString* sio_str = furi_string_alloc(); | ||||
|  | ||||
|     DOLPHIN_DEED(DolphinDeedNfcReadSuccess); | ||||
|  | ||||
|     // Setup view | ||||
|     PicopassBlock* AA1 = picopass->dev->dev_data.AA1; | ||||
|     PicopassPacs* pacs = &picopass->dev->dev_data.pacs; | ||||
|     Widget* widget = picopass->widget; | ||||
|  | ||||
|     size_t bytesLength = 1 + pacs->record.bitLength / 8; | ||||
|     uint8_t csn[PICOPASS_BLOCK_LEN] = {0}; | ||||
|     memcpy(csn, AA1[PICOPASS_CSN_BLOCK_INDEX].data, PICOPASS_BLOCK_LEN); | ||||
|     for(uint8_t i = 0; i < PICOPASS_BLOCK_LEN; i++) { | ||||
|         furi_string_cat_printf(csn_str, "%02X ", csn[i]); | ||||
|     } | ||||
|  | ||||
|     if(pacs->record.bitLength == 0 || pacs->record.bitLength == 255) { | ||||
|         // Neither of these are valid.  Indicates the block was all 0x00 or all 0xff | ||||
|         furi_string_cat_printf(wiegand_str, "Invalid PACS"); | ||||
|     } else { | ||||
|         size_t bytesLength = pacs->record.bitLength / 8; | ||||
|         if(pacs->record.bitLength % 8 > 0) { | ||||
|             // Add extra byte if there are bits remaining | ||||
|             bytesLength++; | ||||
|         } | ||||
|         furi_string_set(credential_str, ""); | ||||
|         for(uint8_t i = PICOPASS_BLOCK_LEN - bytesLength; i < PICOPASS_BLOCK_LEN; i++) { | ||||
|             furi_string_cat_printf(credential_str, " %02X", pacs->credential[i]); | ||||
| @@ -38,19 +53,30 @@ void picopass_scene_device_info_on_enter(void* context) { | ||||
|             furi_string_cat_printf(wiegand_str, "%d bits", pacs->record.bitLength); | ||||
|         } | ||||
|  | ||||
|         if(pacs->sio) { | ||||
|             furi_string_cat_printf(sio_str, "+SIO"); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|     widget_add_string_element( | ||||
|         widget, 64, 12, AlignCenter, AlignCenter, FontPrimary, furi_string_get_cstr(wiegand_str)); | ||||
|         widget, 64, 5, AlignCenter, AlignCenter, FontSecondary, furi_string_get_cstr(csn_str)); | ||||
|     widget_add_string_element( | ||||
|         widget, 64, 20, AlignCenter, AlignCenter, FontPrimary, furi_string_get_cstr(wiegand_str)); | ||||
|     widget_add_string_element( | ||||
|         widget, | ||||
|         64, | ||||
|         32, | ||||
|         36, | ||||
|         AlignCenter, | ||||
|         AlignCenter, | ||||
|         FontSecondary, | ||||
|         furi_string_get_cstr(credential_str)); | ||||
|     widget_add_string_element( | ||||
|         widget, 64, 46, AlignCenter, AlignCenter, FontSecondary, furi_string_get_cstr(sio_str)); | ||||
|  | ||||
|     furi_string_free(csn_str); | ||||
|     furi_string_free(credential_str); | ||||
|     furi_string_free(wiegand_str); | ||||
|     furi_string_free(sio_str); | ||||
|  | ||||
|     widget_add_button_element( | ||||
|         picopass->widget, | ||||
|   | ||||
		Reference in New Issue
	
	Block a user