diff --git a/scenes/sonicare_scene_about.c b/scenes/sonicare_scene_about.c new file mode 100644 index 0000000..3c4cd1b --- /dev/null +++ b/scenes/sonicare_scene_about.c @@ -0,0 +1,27 @@ +#include "../uk_mbirth_sonicare.h" + +void sonicare_scene_about_on_enter(void* context) { + Sonicare* app = context; + Widget* widget = app->widget; + + FuriString* display_text = furi_string_alloc(); + + furi_string_cat(display_text, "Sonicare Brush Head ID\nby mbirth.uk"); + + widget_add_text_scroll_element(widget, 0, 0, 128, 64, furi_string_get_cstr(display_text)); + + view_dispatcher_switch_to_view(app->view_dispatcher, SonicareViewWidget); + furi_string_free(display_text); +} + +bool sonicare_scene_about_on_event(void* context, SceneManagerEvent event) { + UNUSED(context); + UNUSED(event); + bool consumed = false; + return consumed; +} + +void sonicare_scene_about_on_exit(void* context) { + Sonicare* app = context; + widget_reset(app->widget); +} diff --git a/scenes/sonicare_scene_config.h b/scenes/sonicare_scene_config.h index 8ba3f92..f76fd24 100644 --- a/scenes/sonicare_scene_config.h +++ b/scenes/sonicare_scene_config.h @@ -1,2 +1,3 @@ ADD_SCENE(sonicare, start, Start) +ADD_SCENE(sonicare, about, About) ADD_SCENE(sonicare, read, Read) diff --git a/scenes/sonicare_scene_start.c b/scenes/sonicare_scene_start.c index d7dce1a..b3b5238 100644 --- a/scenes/sonicare_scene_start.c +++ b/scenes/sonicare_scene_start.c @@ -11,21 +11,11 @@ void sonicare_scene_start_on_enter(void* context) { Sonicare* app = context; Submenu* submenu = app->submenu; - submenu_add_item( - submenu, - "Extra Actions", - SonicareMenuIndexExtraActions, - sonicare_scene_start_submenu_callback, - app); submenu_add_item(submenu, "Read Brush Head", SonicareMenuIndexRead, sonicare_scene_start_submenu_callback, app); submenu_add_item(submenu, "Write Brush Head", SonicareMenuIndexSaved, sonicare_scene_start_submenu_callback, app); submenu_add_item(submenu, "Add Manually", SonicareMenuIndexAddManually, sonicare_scene_start_submenu_callback, app); + submenu_add_item(submenu, "About...", SonicareMenuIndexAbout, sonicare_scene_start_submenu_callback, app); - - // clear key - //furi_string_reset(app->file_name); - //app->protocol_id = PROTOCOL_NO; - //app->read_type = SONICAREWorkerReadTypeAuto; submenu_set_selected_item(submenu, scene_manager_get_scene_state(app->scene_manager, SonicareSceneStart)); view_dispatcher_switch_to_view(app->view_dispatcher, SonicareViewSubmenu); @@ -41,7 +31,12 @@ bool sonicare_scene_start_on_event(void* context, SceneManagerEvent event) { scene_manager_next_scene(app->scene_manager, SonicareSceneRead); dolphin_deed(DolphinDeedNfcRead); consumed = true; + } else if (event.event == SonicareMenuIndexAbout) { + scene_manager_set_scene_state(app->scene_manager, SonicareSceneStart, SonicareMenuIndexAbout); + scene_manager_next_scene(app->scene_manager, SonicareSceneAbout); + consumed = true; } + } return consumed; diff --git a/uk_mbirth_sonicare.h b/uk_mbirth_sonicare.h index 50c9ba4..c2f1c1f 100644 --- a/uk_mbirth_sonicare.h +++ b/uk_mbirth_sonicare.h @@ -56,6 +56,7 @@ typedef enum { typedef enum { SonicareMenuIndexRead, + SonicareMenuIndexAbout, SonicareMenuIndexSaved, SonicareMenuIndexAddManually, SonicareMenuIndexExtraActions,