| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- #include "../seos_i.h"
- #define TAG "SceneMainMenu"
- #define SEADER_PATH "/ext/apps_data/seader"
- enum SubmenuIndex {
- SubmenuIndexSaved,
- SubmenuIndexRead,
- SubmenuIndexBLEReader,
- SubmenuIndexScannerMenu,
- SubmenuIndexBLECredInterrogate,
- SubmenuIndexAbout,
- SubmenuIndexInspect,
- SubmenuIndexSavedSeader,
- };
- void seos_scene_main_menu_submenu_callback(void* context, uint32_t index) {
- Seos* seos = context;
- view_dispatcher_send_custom_event(seos->view_dispatcher, index);
- }
- void seos_scene_main_menu_on_enter(void* context) {
- Seos* seos = context;
- Submenu* submenu = seos->submenu;
- submenu_reset(submenu);
- submenu_add_item(
- submenu, "Saved", SubmenuIndexSaved, seos_scene_main_menu_submenu_callback, seos);
- submenu_add_item(
- submenu, "Read NFC", SubmenuIndexRead, seos_scene_main_menu_submenu_callback, seos);
- submenu_add_item(
- submenu,
- "Start BLE Reader",
- SubmenuIndexBLEReader,
- seos_scene_main_menu_submenu_callback,
- seos);
- if(seos->has_external_ble) {
- submenu_add_item(
- submenu,
- "Scanners >",
- SubmenuIndexScannerMenu,
- seos_scene_main_menu_submenu_callback,
- seos);
- /*
- submenu_add_item(
- submenu,
- "BLE Cred Interrogate",
- SubmenuIndexBLECredInterrogate,
- seos_scene_main_menu_submenu_callback,
- seos);
- */
- }
- /*
- submenu_add_item(
- submenu, "Inspect", SubmenuIndexInspect, seos_scene_main_menu_submenu_callback, seos);
- */
- submenu_add_item(
- submenu, "About", SubmenuIndexAbout, seos_scene_main_menu_submenu_callback, seos);
- if(storage_dir_exists(seos->credential->storage, SEADER_PATH)) {
- submenu_add_item(
- submenu,
- "Saved (Seader)",
- SubmenuIndexSavedSeader,
- seos_scene_main_menu_submenu_callback,
- seos);
- }
- submenu_set_selected_item(
- seos->submenu, scene_manager_get_scene_state(seos->scene_manager, SeosSceneMainMenu));
- view_dispatcher_switch_to_view(seos->view_dispatcher, SeosViewMenu);
- }
- bool seos_scene_main_menu_on_event(void* context, SceneManagerEvent event) {
- Seos* seos = context;
- bool consumed = false;
- if(event.type == SceneManagerEventTypeCustom) {
- if(event.event == SubmenuIndexRead) {
- scene_manager_set_scene_state(
- seos->scene_manager, SeosSceneMainMenu, SubmenuIndexRead);
- scene_manager_next_scene(seos->scene_manager, SeosSceneRead);
- consumed = true;
- } else if(event.event == SubmenuIndexBLEReader) {
- scene_manager_set_scene_state(
- seos->scene_manager, SeosSceneMainMenu, SubmenuIndexBLEReader);
- seos->flow_mode = FLOW_READER;
- scene_manager_next_scene(seos->scene_manager, SeosSceneBlePeripheral);
- consumed = true;
- } else if(event.event == SubmenuIndexScannerMenu) {
- scene_manager_set_scene_state(
- seos->scene_manager, SeosSceneMainMenu, SubmenuIndexScannerMenu);
- scene_manager_next_scene(seos->scene_manager, SeosSceneScannerMenu);
- consumed = true;
- } else if(event.event == SubmenuIndexBLECredInterrogate) {
- scene_manager_set_scene_state(
- seos->scene_manager, SeosSceneMainMenu, SubmenuIndexBLECredInterrogate);
- seos->flow_mode = FLOW_READER;
- scene_manager_next_scene(seos->scene_manager, SeosSceneBleCentral);
- consumed = true;
- } else if(event.event == SubmenuIndexSaved) {
- scene_manager_set_scene_state(
- seos->scene_manager, SeosSceneMainMenu, SubmenuIndexSaved);
- seos->credential->load_type = SeosLoadSeos;
- scene_manager_next_scene(seos->scene_manager, SeosSceneFileSelect);
- consumed = true;
- } else if(event.event == SubmenuIndexSavedSeader) {
- scene_manager_set_scene_state(
- seos->scene_manager, SeosSceneMainMenu, SubmenuIndexSavedSeader);
- seos->credential->load_type = SeosLoadSeader;
- scene_manager_next_scene(seos->scene_manager, SeosSceneFileSelect);
- consumed = true;
- } else if(event.event == SubmenuIndexInspect) {
- scene_manager_set_scene_state(
- seos->scene_manager, SeosSceneMainMenu, SubmenuIndexInspect);
- seos->flow_mode = FLOW_INSPECT;
- scene_manager_next_scene(seos->scene_manager, SeosSceneEmulate);
- consumed = true;
- } else if(event.event == SubmenuIndexAbout) {
- scene_manager_set_scene_state(
- seos->scene_manager, SeosSceneMainMenu, SubmenuIndexAbout);
- scene_manager_next_scene(seos->scene_manager, SeosSceneAbout);
- consumed = true;
- }
- } else if(event.type == SceneManagerEventTypeBack) {
- while(scene_manager_previous_scene(seos->scene_manager))
- ;
- }
- return consumed;
- }
- void seos_scene_main_menu_on_exit(void* context) {
- Seos* seos = context;
- submenu_reset(seos->submenu);
- }
|