[FL-2220, FL-2221, FL-1883] RFID and iButton GUI update (#1107)
* RFID and iButton gui update * Grammar nazi: readed -> read * Grammar nazi pt.2: writed -> written Co-authored-by: あく <alleteam@gmail.com>
This commit is contained in:
		| @@ -73,6 +73,11 @@ bool LfRfidAppSceneDeleteConfirm::on_event(LfRfidApp* app, LfRfidApp::Event* eve | ||||
|         app->delete_key(&app->worker.key); | ||||
|         app->scene_controller.switch_to_next_scene(LfRfidApp::SceneType::DeleteSuccess); | ||||
|         consumed = true; | ||||
|     } else if(event->type == LfRfidApp::EventType::Stay) { | ||||
|         app->scene_controller.switch_to_previous_scene(); | ||||
|         consumed = true; | ||||
|     } else if(event->type == LfRfidApp::EventType::Back) { | ||||
|         consumed = true; | ||||
|     } | ||||
|  | ||||
|     return consumed; | ||||
| @@ -88,7 +93,7 @@ void LfRfidAppSceneDeleteConfirm::on_exit(LfRfidApp* app) { | ||||
| void LfRfidAppSceneDeleteConfirm::back_callback(void* context) { | ||||
|     LfRfidApp* app = static_cast<LfRfidApp*>(context); | ||||
|     LfRfidApp::Event event; | ||||
|     event.type = LfRfidApp::EventType::Back; | ||||
|     event.type = LfRfidApp::EventType::Stay; | ||||
|     app->view_controller.send_event(&event); | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -4,7 +4,7 @@ void LfRfidAppSceneDeleteSuccess::on_enter(LfRfidApp* app, bool need_restore) { | ||||
|     auto popup = app->view_controller.get<PopupVM>(); | ||||
|  | ||||
|     popup->set_icon(0, 2, &I_DolphinMafia_115x62); | ||||
|     popup->set_text("Deleted", 83, 19, AlignLeft, AlignBottom); | ||||
|     popup->set_header("Deleted", 83, 19, AlignLeft, AlignBottom); | ||||
|     popup->set_context(app); | ||||
|     popup->set_callback(LfRfidAppSceneDeleteSuccess::timeout_callback); | ||||
|     popup->set_timeout(1500); | ||||
|   | ||||
							
								
								
									
										59
									
								
								applications/lfrfid/scene/lfrfid_app_scene_exit_confirm.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								applications/lfrfid/scene/lfrfid_app_scene_exit_confirm.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| #include "lfrfid_app_scene_exit_confirm.h" | ||||
| #include "../view/elements/button_element.h" | ||||
| #include "../view/elements/icon_element.h" | ||||
| #include "../view/elements/string_element.h" | ||||
|  | ||||
| void LfRfidAppSceneExitConfirm::on_enter(LfRfidApp* app, bool need_restore) { | ||||
|     auto container = app->view_controller.get<ContainerVM>(); | ||||
|  | ||||
|     auto button = container->add<ButtonElement>(); | ||||
|     button->set_type(ButtonElement::Type::Left, "Exit"); | ||||
|     button->set_callback(app, LfRfidAppSceneExitConfirm::exit_callback); | ||||
|  | ||||
|     button = container->add<ButtonElement>(); | ||||
|     button->set_type(ButtonElement::Type::Right, "Stay"); | ||||
|     button->set_callback(app, LfRfidAppSceneExitConfirm::stay_callback); | ||||
|  | ||||
|     auto line_1 = container->add<StringElement>(); | ||||
|     auto line_2 = container->add<StringElement>(); | ||||
|  | ||||
|     line_1->set_text("Exit to RFID menu?", 64, 19, 128 - 2, AlignCenter, AlignBottom, FontPrimary); | ||||
|     line_2->set_text( | ||||
|         "All unsaved data will be lost", 64, 29, 0, AlignCenter, AlignBottom, FontSecondary); | ||||
|  | ||||
|     app->view_controller.switch_to<ContainerVM>(); | ||||
| } | ||||
|  | ||||
| bool LfRfidAppSceneExitConfirm::on_event(LfRfidApp* app, LfRfidApp::Event* event) { | ||||
|     bool consumed = false; | ||||
|  | ||||
|     if(event->type == LfRfidApp::EventType::Next) { | ||||
|         app->scene_controller.search_and_switch_to_previous_scene({LfRfidApp::SceneType::Start}); | ||||
|         consumed = true; | ||||
|     } else if(event->type == LfRfidApp::EventType::Stay) { | ||||
|         app->scene_controller.switch_to_previous_scene(); | ||||
|         consumed = true; | ||||
|     } else if(event->type == LfRfidApp::EventType::Back) { | ||||
|         consumed = true; | ||||
|     } | ||||
|  | ||||
|     return consumed; | ||||
| } | ||||
|  | ||||
| void LfRfidAppSceneExitConfirm::on_exit(LfRfidApp* app) { | ||||
|     app->view_controller.get<ContainerVM>()->clean(); | ||||
| } | ||||
|  | ||||
| void LfRfidAppSceneExitConfirm::exit_callback(void* context) { | ||||
|     LfRfidApp* app = static_cast<LfRfidApp*>(context); | ||||
|     LfRfidApp::Event event; | ||||
|     event.type = LfRfidApp::EventType::Next; | ||||
|     app->view_controller.send_event(&event); | ||||
| } | ||||
|  | ||||
| void LfRfidAppSceneExitConfirm::stay_callback(void* context) { | ||||
|     LfRfidApp* app = static_cast<LfRfidApp*>(context); | ||||
|     LfRfidApp::Event event; | ||||
|     event.type = LfRfidApp::EventType::Stay; | ||||
|     app->view_controller.send_event(&event); | ||||
| } | ||||
							
								
								
									
										13
									
								
								applications/lfrfid/scene/lfrfid_app_scene_exit_confirm.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								applications/lfrfid/scene/lfrfid_app_scene_exit_confirm.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| #pragma once | ||||
| #include "../lfrfid_app.h" | ||||
|  | ||||
| class LfRfidAppSceneExitConfirm : public GenericScene<LfRfidApp> { | ||||
| public: | ||||
|     void on_enter(LfRfidApp* app, bool need_restore) final; | ||||
|     bool on_event(LfRfidApp* app, LfRfidApp::Event* event) final; | ||||
|     void on_exit(LfRfidApp* app) final; | ||||
|  | ||||
| private: | ||||
|     static void exit_callback(void* context); | ||||
|     static void stay_callback(void* context); | ||||
| }; | ||||
| @@ -1,4 +1,4 @@ | ||||
| #include "lfrfid_app_scene_readed_menu.h" | ||||
| #include "lfrfid_app_scene_read_menu.h" | ||||
| 
 | ||||
| typedef enum { | ||||
|     SubmenuWrite, | ||||
| @@ -6,7 +6,7 @@ typedef enum { | ||||
|     SubmenuEmulate, | ||||
| } SubmenuIndex; | ||||
| 
 | ||||
| void LfRfidAppSceneReadedMenu::on_enter(LfRfidApp* app, bool need_restore) { | ||||
| void LfRfidAppSceneReadKeyMenu::on_enter(LfRfidApp* app, bool need_restore) { | ||||
|     auto submenu = app->view_controller.get<SubmenuVM>(); | ||||
| 
 | ||||
|     submenu->add_item("Write", SubmenuWrite, submenu_callback, app); | ||||
| @@ -20,7 +20,7 @@ void LfRfidAppSceneReadedMenu::on_enter(LfRfidApp* app, bool need_restore) { | ||||
|     app->view_controller.switch_to<SubmenuVM>(); | ||||
| } | ||||
| 
 | ||||
| bool LfRfidAppSceneReadedMenu::on_event(LfRfidApp* app, LfRfidApp::Event* event) { | ||||
| bool LfRfidAppSceneReadKeyMenu::on_event(LfRfidApp* app, LfRfidApp::Event* event) { | ||||
|     bool consumed = false; | ||||
| 
 | ||||
|     if(event->type == LfRfidApp::EventType::MenuSelected) { | ||||
| @@ -38,18 +38,18 @@ bool LfRfidAppSceneReadedMenu::on_event(LfRfidApp* app, LfRfidApp::Event* event) | ||||
|         } | ||||
|         consumed = true; | ||||
|     } else if(event->type == LfRfidApp::EventType::Back) { | ||||
|         app->scene_controller.search_and_switch_to_previous_scene({LfRfidApp::SceneType::Start}); | ||||
|         app->scene_controller.switch_to_previous_scene(); | ||||
|         consumed = true; | ||||
|     } | ||||
| 
 | ||||
|     return consumed; | ||||
| } | ||||
| 
 | ||||
| void LfRfidAppSceneReadedMenu::on_exit(LfRfidApp* app) { | ||||
| void LfRfidAppSceneReadKeyMenu::on_exit(LfRfidApp* app) { | ||||
|     app->view_controller.get<SubmenuVM>()->clean(); | ||||
| } | ||||
| 
 | ||||
| void LfRfidAppSceneReadedMenu::submenu_callback(void* context, uint32_t index) { | ||||
| void LfRfidAppSceneReadKeyMenu::submenu_callback(void* context, uint32_t index) { | ||||
|     LfRfidApp* app = static_cast<LfRfidApp*>(context); | ||||
|     LfRfidApp::Event event; | ||||
| 
 | ||||
| @@ -1,7 +1,7 @@ | ||||
| #pragma once | ||||
| #include "../lfrfid_app.h" | ||||
| 
 | ||||
| class LfRfidAppSceneReadedMenu : public GenericScene<LfRfidApp> { | ||||
| class LfRfidAppSceneReadKeyMenu : public GenericScene<LfRfidApp> { | ||||
| public: | ||||
|     void on_enter(LfRfidApp* app, bool need_restore) final; | ||||
|     bool on_event(LfRfidApp* app, LfRfidApp::Event* event) final; | ||||
| @@ -85,7 +85,13 @@ bool LfRfidAppSceneReadSuccess::on_event(LfRfidApp* app, LfRfidApp::Event* event | ||||
|     bool consumed = false; | ||||
|  | ||||
|     if(event->type == LfRfidApp::EventType::Next) { | ||||
|         app->scene_controller.switch_to_next_scene(LfRfidApp::SceneType::ReadedMenu); | ||||
|         app->scene_controller.switch_to_next_scene(LfRfidApp::SceneType::ReadKeyMenu); | ||||
|         consumed = true; | ||||
|     } else if(event->type == LfRfidApp::EventType::Retry) { | ||||
|         app->scene_controller.switch_to_next_scene({LfRfidApp::SceneType::RetryConfirm}); | ||||
|         consumed = true; | ||||
|     } else if(event->type == LfRfidApp::EventType::Back) { | ||||
|         app->scene_controller.switch_to_next_scene({LfRfidApp::SceneType::ExitConfirm}); | ||||
|         consumed = true; | ||||
|     } | ||||
|  | ||||
| @@ -103,7 +109,7 @@ void LfRfidAppSceneReadSuccess::on_exit(LfRfidApp* app) { | ||||
| void LfRfidAppSceneReadSuccess::back_callback(void* context) { | ||||
|     LfRfidApp* app = static_cast<LfRfidApp*>(context); | ||||
|     LfRfidApp::Event event; | ||||
|     event.type = LfRfidApp::EventType::Back; | ||||
|     event.type = LfRfidApp::EventType::Retry; | ||||
|     app->view_controller.send_event(&event); | ||||
| } | ||||
|  | ||||
|   | ||||
							
								
								
									
										59
									
								
								applications/lfrfid/scene/lfrfid_app_scene_retry_confirm.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								applications/lfrfid/scene/lfrfid_app_scene_retry_confirm.cpp
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,59 @@ | ||||
| #include "lfrfid_app_scene_retry_confirm.h" | ||||
| #include "../view/elements/button_element.h" | ||||
| #include "../view/elements/icon_element.h" | ||||
| #include "../view/elements/string_element.h" | ||||
|  | ||||
| void LfRfidAppSceneRetryConfirm::on_enter(LfRfidApp* app, bool need_restore) { | ||||
|     auto container = app->view_controller.get<ContainerVM>(); | ||||
|  | ||||
|     auto button = container->add<ButtonElement>(); | ||||
|     button->set_type(ButtonElement::Type::Left, "Exit"); | ||||
|     button->set_callback(app, LfRfidAppSceneRetryConfirm::exit_callback); | ||||
|  | ||||
|     button = container->add<ButtonElement>(); | ||||
|     button->set_type(ButtonElement::Type::Right, "Stay"); | ||||
|     button->set_callback(app, LfRfidAppSceneRetryConfirm::stay_callback); | ||||
|  | ||||
|     auto line_1 = container->add<StringElement>(); | ||||
|     auto line_2 = container->add<StringElement>(); | ||||
|  | ||||
|     line_1->set_text("Return to reading?", 64, 19, 128 - 2, AlignCenter, AlignBottom, FontPrimary); | ||||
|     line_2->set_text( | ||||
|         "All unsaved data will be lost", 64, 29, 0, AlignCenter, AlignBottom, FontSecondary); | ||||
|  | ||||
|     app->view_controller.switch_to<ContainerVM>(); | ||||
| } | ||||
|  | ||||
| bool LfRfidAppSceneRetryConfirm::on_event(LfRfidApp* app, LfRfidApp::Event* event) { | ||||
|     bool consumed = false; | ||||
|  | ||||
|     if(event->type == LfRfidApp::EventType::Next) { | ||||
|         app->scene_controller.search_and_switch_to_previous_scene({LfRfidApp::SceneType::Read}); | ||||
|         consumed = true; | ||||
|     } else if(event->type == LfRfidApp::EventType::Stay) { | ||||
|         app->scene_controller.switch_to_previous_scene(); | ||||
|         consumed = true; | ||||
|     } else if(event->type == LfRfidApp::EventType::Back) { | ||||
|         consumed = true; | ||||
|     } | ||||
|  | ||||
|     return consumed; | ||||
| } | ||||
|  | ||||
| void LfRfidAppSceneRetryConfirm::on_exit(LfRfidApp* app) { | ||||
|     app->view_controller.get<ContainerVM>()->clean(); | ||||
| } | ||||
|  | ||||
| void LfRfidAppSceneRetryConfirm::exit_callback(void* context) { | ||||
|     LfRfidApp* app = static_cast<LfRfidApp*>(context); | ||||
|     LfRfidApp::Event event; | ||||
|     event.type = LfRfidApp::EventType::Next; | ||||
|     app->view_controller.send_event(&event); | ||||
| } | ||||
|  | ||||
| void LfRfidAppSceneRetryConfirm::stay_callback(void* context) { | ||||
|     LfRfidApp* app = static_cast<LfRfidApp*>(context); | ||||
|     LfRfidApp::Event event; | ||||
|     event.type = LfRfidApp::EventType::Stay; | ||||
|     app->view_controller.send_event(&event); | ||||
| } | ||||
							
								
								
									
										13
									
								
								applications/lfrfid/scene/lfrfid_app_scene_retry_confirm.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								applications/lfrfid/scene/lfrfid_app_scene_retry_confirm.h
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,13 @@ | ||||
| #pragma once | ||||
| #include "../lfrfid_app.h" | ||||
|  | ||||
| class LfRfidAppSceneRetryConfirm : public GenericScene<LfRfidApp> { | ||||
| public: | ||||
|     void on_enter(LfRfidApp* app, bool need_restore) final; | ||||
|     bool on_event(LfRfidApp* app, LfRfidApp::Event* event) final; | ||||
|     void on_exit(LfRfidApp* app) final; | ||||
|  | ||||
| private: | ||||
|     static void exit_callback(void* context); | ||||
|     static void stay_callback(void* context); | ||||
| }; | ||||
| @@ -42,7 +42,7 @@ bool LfRfidAppSceneSaveName::on_event(LfRfidApp* app, LfRfidApp::Event* event) { | ||||
|             app->scene_controller.switch_to_next_scene(LfRfidApp::SceneType::SaveSuccess); | ||||
|         } else { | ||||
|             app->scene_controller.search_and_switch_to_previous_scene( | ||||
|                 {LfRfidApp::SceneType::ReadedMenu}); | ||||
|                 {LfRfidApp::SceneType::ReadKeyMenu}); | ||||
|         } | ||||
|     } | ||||
|  | ||||
|   | ||||
| @@ -8,7 +8,7 @@ void LfRfidAppSceneSaveSuccess::on_enter(LfRfidApp* app, bool need_restore) { | ||||
|  | ||||
|     DOLPHIN_DEED(DolphinDeedRfidSave); | ||||
|     popup->set_icon(32, 5, &I_DolphinNice_96x59); | ||||
|     popup->set_text("Saved!", 13, 22, AlignLeft, AlignBottom); | ||||
|     popup->set_header("Saved!", 5, 7, AlignLeft, AlignTop); | ||||
|     popup->set_context(app); | ||||
|     popup->set_callback(LfRfidAppSceneSaveSuccess::timeout_callback); | ||||
|     popup->set_timeout(1500); | ||||
| @@ -22,11 +22,11 @@ bool LfRfidAppSceneSaveSuccess::on_event(LfRfidApp* app, LfRfidApp::Event* event | ||||
|  | ||||
|     if(event->type == LfRfidApp::EventType::Back) { | ||||
|         bool result = app->scene_controller.has_previous_scene( | ||||
|             {LfRfidApp::SceneType::ReadedMenu, LfRfidApp::SceneType::SelectKey}); | ||||
|             {LfRfidApp::SceneType::ReadKeyMenu, LfRfidApp::SceneType::SelectKey}); | ||||
|  | ||||
|         if(result) { | ||||
|             app->scene_controller.search_and_switch_to_previous_scene( | ||||
|                 {LfRfidApp::SceneType::ReadedMenu, LfRfidApp::SceneType::SelectKey}); | ||||
|                 {LfRfidApp::SceneType::ReadKeyMenu, LfRfidApp::SceneType::SelectKey}); | ||||
|         } else { | ||||
|             app->scene_controller.search_and_switch_to_another_scene( | ||||
|                 {LfRfidApp::SceneType::SaveType}, LfRfidApp::SceneType::SelectKey); | ||||
|   | ||||
| @@ -18,7 +18,7 @@ bool LfRfidAppSceneWriteSuccess::on_event(LfRfidApp* app, LfRfidApp::Event* even | ||||
|  | ||||
|     if(event->type == LfRfidApp::EventType::Back) { | ||||
|         app->scene_controller.search_and_switch_to_previous_scene( | ||||
|             {LfRfidApp::SceneType::ReadedMenu, LfRfidApp::SceneType::SelectKey}); | ||||
|             {LfRfidApp::SceneType::ReadKeyMenu, LfRfidApp::SceneType::SelectKey}); | ||||
|         consumed = true; | ||||
|     } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user