|
| 1 | +#include "../picopass_i.h" |
| 2 | +#include <dolphin/dolphin.h> |
| 3 | + |
| 4 | +void picopass_scene_more_info_widget_callback(GuiButtonType result, InputType type, void* context) { |
| 5 | + Picopass* picopass = context; |
| 6 | + if(type == InputTypeShort) { |
| 7 | + view_dispatcher_send_custom_event(picopass->view_dispatcher, result); |
| 8 | + } |
| 9 | +} |
| 10 | + |
| 11 | +void picopass_scene_more_info_on_enter(void* context) { |
| 12 | + Picopass* picopass = context; |
| 13 | + PicopassBlock* AA1 = picopass->dev->dev_data.AA1; |
| 14 | + |
| 15 | + furi_string_reset(picopass->text_box_store); |
| 16 | + |
| 17 | + size_t app_limit = MIN(AA1[PICOPASS_CONFIG_BLOCK_INDEX].data[0], PICOPASS_MAX_APP_LIMIT); |
| 18 | + FuriString* str = picopass->text_box_store; |
| 19 | + |
| 20 | + for(size_t i = 0; i < app_limit; i++) { |
| 21 | + for(size_t j = 0; j < PICOPASS_BLOCK_LEN; j += 2) { |
| 22 | + furi_string_cat_printf(str, "%02X%02X ", AA1[i].data[j], AA1[i].data[j + 1]); |
| 23 | + } |
| 24 | + } |
| 25 | + |
| 26 | + text_box_set_font(picopass->text_box, TextBoxFontHex); |
| 27 | + text_box_set_text(picopass->text_box, furi_string_get_cstr(picopass->text_box_store)); |
| 28 | + view_dispatcher_switch_to_view(picopass->view_dispatcher, PicopassViewTextBox); |
| 29 | +} |
| 30 | + |
| 31 | +bool picopass_scene_more_info_on_event(void* context, SceneManagerEvent event) { |
| 32 | + Picopass* picopass = context; |
| 33 | + bool consumed = false; |
| 34 | + |
| 35 | + if(event.type == SceneManagerEventTypeCustom) { |
| 36 | + if(event.event == GuiButtonTypeLeft) { |
| 37 | + consumed = scene_manager_previous_scene(picopass->scene_manager); |
| 38 | + } |
| 39 | + } else if(event.type == SceneManagerEventTypeBack) { |
| 40 | + consumed = scene_manager_previous_scene(picopass->scene_manager); |
| 41 | + } |
| 42 | + return consumed; |
| 43 | +} |
| 44 | + |
| 45 | +void picopass_scene_more_info_on_exit(void* context) { |
| 46 | + Picopass* picopass = context; |
| 47 | + |
| 48 | + // Clear views |
| 49 | + widget_reset(picopass->widget); |
| 50 | +} |
0 commit comments