From 9b42cc862be306e1d7e264593e20c403628932cf Mon Sep 17 00:00:00 2001 From: objnull Date: Thu, 5 Sep 2024 16:29:18 -0400 Subject: [PATCH] Added Password Viewer (TEMP) --- project/backend/ui.c | 78 +++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 74 insertions(+), 4 deletions(-) diff --git a/project/backend/ui.c b/project/backend/ui.c index ce742ec..dfddab2 100644 --- a/project/backend/ui.c +++ b/project/backend/ui.c @@ -18,7 +18,8 @@ typedef enum { FP_View_Submenu, FP_View_Popup } FP_View; /* All events */ typedef enum { - FP_Event_SwitchTo_About + FP_Event_SwitchTo_About, + FP_Event_SwitchTo_Overview } FP_Event; /* Scene events */ @@ -39,11 +40,22 @@ void FP_Scene_Callback_MainMenu(void* context, uint32_t index) { case FP_Scene_MainMenu_Event_About: scene_manager_handle_custom_event(app->scene_manager, FP_Event_SwitchTo_About); break; + case FP_Scene_MainMenu_Event_View: + scene_manager_handle_custom_event(app->scene_manager, FP_Event_SwitchTo_Overview); + break; default: FURI_LOG_I(TAG, "S_MAINMENU: Unimplemented!"); break; } } +void FP_Scene_Callback_Overview(void* context, uint32_t index) { + // Setting context + FP_App* app = context; + + // Sending it to the scene manager + scene_manager_handle_custom_event(app->scene_manager, index); +} + void FP_Scene_Enter_MainMenu(void* context) { // Setting context FP_App* app = context; @@ -84,6 +96,28 @@ void FP_Scene_Enter_MainMenu(void* context) { // Switching to current view view_dispatcher_switch_to_view(app->view_dispatcher, FP_View_Submenu); } +void FP_Scene_Enter_Overview(void* context) { + // Setting context + FP_App* app = context; + + // Reset menu + submenu_reset(app->submenu); + + // Adding menu items + for (int i = 0; i < 4; i++) { + submenu_add_item( + app->submenu, + "PASSWORD", + 0, + FP_Scene_Callback_Overview, + app + ); + } + + // Sending view to Flipper + view_dispatcher_switch_to_view(app->view_dispatcher, FP_View_Submenu); +} + void FP_Scene_Exit_MainMenu(void* context) { // Setting context FP_App* app = context; @@ -91,6 +125,14 @@ void FP_Scene_Exit_MainMenu(void* context) { // Reset menu submenu_reset(app->submenu); } +void FP_Scene_Exit_Overview(void* context) { + // Setting context + FP_App* app = context; + + // Reset menu + submenu_reset(app->submenu); +} + bool FP_Scene_Event_MainMenu(void* context, SceneManagerEvent event) { // Setting context FP_App* app = context; @@ -106,6 +148,9 @@ bool FP_Scene_Event_MainMenu(void* context, SceneManagerEvent event) { case FP_Event_SwitchTo_About: scene_manager_next_scene(app->scene_manager, FP_Scene_About); break; + case FP_Event_SwitchTo_Overview: + scene_manager_next_scene(app->scene_manager, FP_Scene_Overview); + break; default: break; } @@ -116,16 +161,41 @@ bool FP_Scene_Event_MainMenu(void* context, SceneManagerEvent event) { // Return result return consumed; } +bool FP_Scene_Event_Overview(void* context, SceneManagerEvent event) { + // Setting context + FP_App* app = context; + bool consumed = false; + + // Switching based on event + if (event.type == SceneManagerEventTypeCustom) { + // We consumed it + consumed = true; + + // DEBUG + FURI_LOG_D(TAG, "Opening password %li", event.event); + + // Switch to password view screen + scene_manager_next_scene(app->scene_manager, FP_Scene_View); + } else { + consumed = false; + } + + // Return result + return consumed; +} /* Handlers */ void (*const FP_Scene_Enter_Handlers[])(void*) = { - FP_Scene_Enter_MainMenu + FP_Scene_Enter_MainMenu, + FP_Scene_Enter_Overview }; bool (*const FP_Scene_Event_Handlers[])(void*, SceneManagerEvent) = { - FP_Scene_Event_MainMenu + FP_Scene_Event_MainMenu, + FP_Scene_Event_Overview }; void (*const FP_Scene_Exit_Handlers[])(void*) = { - FP_Scene_Exit_MainMenu + FP_Scene_Exit_MainMenu, + FP_Scene_Exit_Overview }; /* Event Handlers */