| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- #include "../mifare_nested_i.h"
- enum SubmenuIndex { SubmenuIndexCollect, SubmenuIndexCheck, SubmenuIndexAbout };
- void mifare_nested_scene_start_submenu_callback(void* context, uint32_t index) {
- MifareNested* mifare_nested = context;
- view_dispatcher_send_custom_event(mifare_nested->view_dispatcher, index);
- }
- void mifare_nested_scene_start_on_enter(void* context) {
- MifareNested* mifare_nested = context;
- Submenu* submenu = mifare_nested->submenu;
- submenu_add_item(
- submenu,
- "Nested attack",
- SubmenuIndexCollect,
- mifare_nested_scene_start_submenu_callback,
- mifare_nested);
- submenu_add_item(
- submenu,
- "Check found keys",
- SubmenuIndexCheck,
- mifare_nested_scene_start_submenu_callback,
- mifare_nested);
- submenu_add_item(
- submenu,
- "About",
- SubmenuIndexAbout,
- mifare_nested_scene_start_submenu_callback,
- mifare_nested);
- submenu_set_selected_item(
- submenu,
- scene_manager_get_scene_state(mifare_nested->scene_manager, MifareNestedSceneStart));
- view_dispatcher_switch_to_view(mifare_nested->view_dispatcher, MifareNestedViewMenu);
- }
- bool mifare_nested_scene_start_on_event(void* context, SceneManagerEvent event) {
- MifareNested* mifare_nested = context;
- bool consumed = false;
- if(event.type == SceneManagerEventTypeCustom) {
- if(event.event == SubmenuIndexCollect) {
- mifare_nested->run = NestedRunAttack;
- scene_manager_next_scene(mifare_nested->scene_manager, MifareNestedSceneCheck);
- consumed = true;
- } else if(event.event == SubmenuIndexCheck) {
- mifare_nested->run = NestedRunCheckKeys;
- scene_manager_next_scene(mifare_nested->scene_manager, MifareNestedSceneCheck);
- consumed = true;
- } else if(event.event == SubmenuIndexAbout) {
- scene_manager_next_scene(mifare_nested->scene_manager, MifareNestedSceneAbout);
- consumed = true;
- }
- scene_manager_set_scene_state(
- mifare_nested->scene_manager, MifareNestedSceneStart, event.event);
- }
- return consumed;
- }
- void mifare_nested_scene_start_on_exit(void* context) {
- MifareNested* mifare_nested = context;
- submenu_reset(mifare_nested->submenu);
- }
|