lfrfid_app_scene_saved_info.cpp 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. #include "lfrfid_app_scene_saved_info.h"
  2. #include "../view/elements/button_element.h"
  3. #include "../view/elements/icon_element.h"
  4. #include "../view/elements/string_element.h"
  5. void LfRfidAppSceneSavedInfo::on_enter(LfRfidApp* app, bool /* need_restore */) {
  6. string_init(string_info);
  7. string_printf(
  8. string_info,
  9. "%s [%s]\r\n",
  10. string_get_cstr(app->file_name),
  11. protocol_dict_get_name(app->dict, app->protocol_id));
  12. size_t size = protocol_dict_get_data_size(app->dict, app->protocol_id);
  13. uint8_t* data = (uint8_t*)malloc(size);
  14. protocol_dict_get_data(app->dict, app->protocol_id, data, size);
  15. for(uint8_t i = 0; i < size; i++) {
  16. if(i != 0) {
  17. string_cat_printf(string_info, " ");
  18. }
  19. string_cat_printf(string_info, "%02X", data[i]);
  20. }
  21. free(data);
  22. string_t render_data;
  23. string_init(render_data);
  24. protocol_dict_render_data(app->dict, render_data, app->protocol_id);
  25. string_cat_printf(string_info, "\r\n%s", string_get_cstr(render_data));
  26. string_clear(render_data);
  27. auto container = app->view_controller.get<ContainerVM>();
  28. auto line_1 = container->add<StringElement>();
  29. line_1->set_text(string_get_cstr(string_info), 0, 1, 0, AlignLeft, AlignTop, FontSecondary);
  30. app->view_controller.switch_to<ContainerVM>();
  31. }
  32. bool LfRfidAppSceneSavedInfo::on_event(LfRfidApp* /* app */, LfRfidApp::Event* /* event */) {
  33. return false;
  34. }
  35. void LfRfidAppSceneSavedInfo::on_exit(LfRfidApp* app) {
  36. app->view_controller.get<ContainerVM>()->clean();
  37. string_clear(string_info);
  38. }