flipbip_scene_menu.c 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. #include "../flipbip.h"
  2. #include "../helpers/flipbip_file.h"
  3. enum SubmenuIndex {
  4. SubmenuIndexScene1BTC = 10,
  5. SubmenuIndexScene1ETH,
  6. SubmenuIndexScene1DOGE,
  7. SubmenuIndexScene1ZEC,
  8. SubmenuIndexScene1New,
  9. SubmenuIndexScene1Import,
  10. SubmenuIndexSettings,
  11. };
  12. void flipbip_scene_menu_submenu_callback(void* context, uint32_t index) {
  13. FlipBip* app = context;
  14. view_dispatcher_send_custom_event(app->view_dispatcher, index);
  15. }
  16. void flipbip_scene_menu_on_enter(void* context) {
  17. FlipBip* app = context;
  18. if(flipbip_has_file(FlipBipFileKey, NULL, false) &&
  19. flipbip_has_file(FlipBipFileDat, NULL, false)) {
  20. submenu_add_item(
  21. app->submenu,
  22. "View BTC wallet",
  23. SubmenuIndexScene1BTC,
  24. flipbip_scene_menu_submenu_callback,
  25. app);
  26. submenu_add_item(
  27. app->submenu,
  28. "View ETH wallet",
  29. SubmenuIndexScene1ETH,
  30. flipbip_scene_menu_submenu_callback,
  31. app);
  32. submenu_add_item(
  33. app->submenu,
  34. "View DOGE wallet",
  35. SubmenuIndexScene1DOGE,
  36. flipbip_scene_menu_submenu_callback,
  37. app);
  38. submenu_add_item(
  39. app->submenu,
  40. "View ZEC (t-addr) wallet",
  41. SubmenuIndexScene1ZEC,
  42. flipbip_scene_menu_submenu_callback,
  43. app);
  44. submenu_add_item(
  45. app->submenu,
  46. "Regenerate wallet",
  47. SubmenuIndexScene1New,
  48. flipbip_scene_menu_submenu_callback,
  49. app);
  50. } else {
  51. submenu_add_item(
  52. app->submenu,
  53. "Generate new wallet",
  54. SubmenuIndexScene1New,
  55. flipbip_scene_menu_submenu_callback,
  56. app);
  57. }
  58. submenu_add_item(
  59. app->submenu,
  60. "Import from mnemonic",
  61. SubmenuIndexScene1Import,
  62. flipbip_scene_menu_submenu_callback,
  63. app);
  64. submenu_add_item(
  65. app->submenu, "Settings", SubmenuIndexSettings, flipbip_scene_menu_submenu_callback, app);
  66. submenu_set_selected_item(
  67. app->submenu, scene_manager_get_scene_state(app->scene_manager, FlipBipSceneMenu));
  68. view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdMenu);
  69. }
  70. bool flipbip_scene_menu_on_event(void* context, SceneManagerEvent event) {
  71. FlipBip* app = context;
  72. //UNUSED(app);
  73. if(event.type == SceneManagerEventTypeBack) {
  74. //exit app
  75. scene_manager_stop(app->scene_manager);
  76. view_dispatcher_stop(app->view_dispatcher);
  77. return true;
  78. } else if(event.type == SceneManagerEventTypeCustom) {
  79. if(event.event == SubmenuIndexScene1BTC) {
  80. app->overwrite_saved_seed = 0;
  81. app->import_from_mnemonic = 0;
  82. app->bip44_coin = FlipBipCoinBTC0;
  83. scene_manager_set_scene_state(
  84. app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1BTC);
  85. scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1);
  86. return true;
  87. } else if(event.event == SubmenuIndexScene1ETH) {
  88. app->overwrite_saved_seed = 0;
  89. app->import_from_mnemonic = 0;
  90. app->bip44_coin = FlipBipCoinETH60;
  91. scene_manager_set_scene_state(
  92. app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1ETH);
  93. scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1);
  94. return true;
  95. } else if(event.event == SubmenuIndexScene1DOGE) {
  96. app->overwrite_saved_seed = 0;
  97. app->import_from_mnemonic = 0;
  98. app->bip44_coin = FlipBipCoinDOGE3;
  99. scene_manager_set_scene_state(
  100. app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1DOGE);
  101. scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1);
  102. return true;
  103. } else if(event.event == SubmenuIndexScene1ZEC) {
  104. app->overwrite_saved_seed = 0;
  105. app->import_from_mnemonic = 0;
  106. app->bip44_coin = FlipBipCoinZEC133;
  107. scene_manager_set_scene_state(
  108. app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1ZEC);
  109. scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1);
  110. return true;
  111. } else if(event.event == SubmenuIndexScene1New) {
  112. app->overwrite_saved_seed = 1;
  113. app->import_from_mnemonic = 0;
  114. scene_manager_set_scene_state(
  115. app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1New);
  116. scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1);
  117. return true;
  118. } else if(event.event == SubmenuIndexScene1Import) {
  119. app->import_from_mnemonic = 1;
  120. app->input_state = FlipBipTextInputMnemonic;
  121. text_input_set_header_text(app->text_input, "Enter mnemonic phrase");
  122. view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdTextInput);
  123. return true;
  124. } else if(event.event == SubmenuIndexSettings) {
  125. scene_manager_set_scene_state(
  126. app->scene_manager, FlipBipSceneMenu, SubmenuIndexSettings);
  127. scene_manager_next_scene(app->scene_manager, FlipBipSceneSettings);
  128. return true;
  129. }
  130. }
  131. return false;
  132. }
  133. void flipbip_scene_menu_on_exit(void* context) {
  134. FlipBip* app = context;
  135. submenu_reset(app->submenu);
  136. }