ibutton_scene_info.c 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. #include "../ibutton_i.h"
  2. void ibutton_scene_info_on_enter(void* context) {
  3. iButton* ibutton = context;
  4. Widget* widget = ibutton->widget;
  5. iButtonKey* key = ibutton->key;
  6. const uint8_t* key_data = ibutton_key_get_data_p(key);
  7. ibutton_text_store_set(ibutton, "%s", ibutton_key_get_name_p(key));
  8. widget_add_text_box_element(
  9. widget, 0, 0, 128, 28, AlignCenter, AlignCenter, ibutton->text_store, false);
  10. switch(ibutton_key_get_type(key)) {
  11. case iButtonKeyDS1990:
  12. ibutton_text_store_set(
  13. ibutton,
  14. "%02X %02X %02X %02X %02X %02X %02X %02X",
  15. key_data[0],
  16. key_data[1],
  17. key_data[2],
  18. key_data[3],
  19. key_data[4],
  20. key_data[5],
  21. key_data[6],
  22. key_data[7]);
  23. widget_add_string_element(
  24. widget, 64, 51, AlignCenter, AlignBottom, FontSecondary, "Dallas");
  25. break;
  26. case iButtonKeyMetakom:
  27. ibutton_text_store_set(
  28. ibutton, "%02X %02X %02X %02X", key_data[0], key_data[1], key_data[2], key_data[3]);
  29. widget_add_string_element(
  30. widget, 64, 51, AlignCenter, AlignBottom, FontSecondary, "Metakom");
  31. break;
  32. case iButtonKeyCyfral:
  33. ibutton_text_store_set(ibutton, "%02X %02X", key_data[0], key_data[1]);
  34. widget_add_string_element(
  35. widget, 64, 51, AlignCenter, AlignBottom, FontSecondary, "Cyfral");
  36. break;
  37. }
  38. widget_add_string_element(
  39. widget, 64, 35, AlignCenter, AlignBottom, FontPrimary, ibutton->text_store);
  40. view_dispatcher_switch_to_view(ibutton->view_dispatcher, iButtonViewWidget);
  41. }
  42. bool ibutton_scene_info_on_event(void* context, SceneManagerEvent event) {
  43. UNUSED(context);
  44. UNUSED(event);
  45. return false;
  46. }
  47. void ibutton_scene_info_on_exit(void* context) {
  48. iButton* ibutton = context;
  49. ibutton_text_store_clear(ibutton);
  50. widget_reset(ibutton->widget);
  51. }