flipbip_scene_menu.c 3.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. #include "../flipbip.h"
  2. #include "../helpers/flipbip_file.h"
  3. enum SubmenuIndex {
  4. SubmenuIndexScene1BTC = 10,
  5. SubmenuIndexScene1ETH,
  6. SubmenuIndexScene1New,
  7. SubmenuIndexSettings,
  8. };
  9. void flipbip_scene_menu_submenu_callback(void* context, uint32_t index) {
  10. FlipBip* app = context;
  11. view_dispatcher_send_custom_event(app->view_dispatcher, index);
  12. }
  13. void flipbip_scene_menu_on_enter(void* context) {
  14. FlipBip* app = context;
  15. if(flipbip_has_settings(true) && flipbip_has_settings(false)) {
  16. submenu_add_item(
  17. app->submenu,
  18. "View saved BTC wallet",
  19. SubmenuIndexScene1BTC,
  20. flipbip_scene_menu_submenu_callback,
  21. app);
  22. submenu_add_item(
  23. app->submenu,
  24. "View saved ETH wallet",
  25. SubmenuIndexScene1ETH,
  26. flipbip_scene_menu_submenu_callback,
  27. app);
  28. }
  29. submenu_add_item(
  30. app->submenu,
  31. "Generate new wallet",
  32. SubmenuIndexScene1New,
  33. flipbip_scene_menu_submenu_callback,
  34. app);
  35. submenu_add_item(
  36. app->submenu, "Settings", SubmenuIndexSettings, flipbip_scene_menu_submenu_callback, app);
  37. submenu_set_selected_item(
  38. app->submenu, scene_manager_get_scene_state(app->scene_manager, FlipBipSceneMenu));
  39. view_dispatcher_switch_to_view(app->view_dispatcher, FlipBipViewIdMenu);
  40. }
  41. bool flipbip_scene_menu_on_event(void* context, SceneManagerEvent event) {
  42. FlipBip* app = context;
  43. //UNUSED(app);
  44. if(event.type == SceneManagerEventTypeBack) {
  45. //exit app
  46. scene_manager_stop(app->scene_manager);
  47. view_dispatcher_stop(app->view_dispatcher);
  48. return true;
  49. } else if(event.type == SceneManagerEventTypeCustom) {
  50. if(event.event == SubmenuIndexScene1BTC) {
  51. app->overwrite_saved_seed = 0;
  52. app->bip44_coin = FlipBipCoinBTC0;
  53. scene_manager_set_scene_state(
  54. app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1BTC);
  55. scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1);
  56. return true;
  57. } else if(event.event == SubmenuIndexScene1ETH) {
  58. app->overwrite_saved_seed = 0;
  59. app->bip44_coin = FlipBipCoinETH60;
  60. scene_manager_set_scene_state(
  61. app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1ETH);
  62. scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1);
  63. return true;
  64. } else if(event.event == SubmenuIndexScene1New) {
  65. app->overwrite_saved_seed = 1;
  66. scene_manager_set_scene_state(
  67. app->scene_manager, FlipBipSceneMenu, SubmenuIndexScene1New);
  68. scene_manager_next_scene(app->scene_manager, FlipBipSceneScene_1);
  69. return true;
  70. } else if(event.event == SubmenuIndexSettings) {
  71. scene_manager_set_scene_state(
  72. app->scene_manager, FlipBipSceneMenu, SubmenuIndexSettings);
  73. scene_manager_next_scene(app->scene_manager, FlipBipSceneSettings);
  74. return true;
  75. }
  76. }
  77. return false;
  78. }
  79. void flipbip_scene_menu_on_exit(void* context) {
  80. FlipBip* app = context;
  81. submenu_reset(app->submenu);
  82. }