Sfoglia il codice sorgente

feat: "Show info ..." implemented

Roman Shchekin 2 anni fa
parent
commit
dfa00d3a9d

+ 12 - 6
scenes/hex_viewer_scene_menu.c

@@ -2,7 +2,7 @@
 
 enum SubmenuIndex {
     SubmenuIndexScene1 = 10,
-    // SubmenuIndexScene2,
+    SubmenuIndexScene2,
     // SubmenuIndexScene3,
     SubmenuIndexScene4,
     // SubmenuIndexScene5,
@@ -32,6 +32,12 @@ void hex_viewer_scene_menu_on_enter(void* context) {
         SubmenuIndexScene1,
         hex_viewer_scene_menu_submenu_callback,
         app);
+    submenu_add_item(
+        app->submenu,
+        "Show info ...",
+        SubmenuIndexScene2,
+        hex_viewer_scene_menu_submenu_callback,
+        app);
     // submenu_add_item(app->submenu, "Settings", SubmenuIndexSettings, hex_viewer_scene_menu_submenu_callback, app);
 
     submenu_set_selected_item(
@@ -55,11 +61,11 @@ bool hex_viewer_scene_menu_on_event(void* context, SceneManagerEvent event) {
                 app->scene_manager, HexViewerSceneMenu, SubmenuIndexScene1);
             scene_manager_next_scene(app->scene_manager, HexViewerSceneScene_1);
             return true;
-            // } else if (event.event == SubmenuIndexScene2) {
-            //     scene_manager_set_scene_state(
-            //         app->scene_manager, HexViewerSceneMenu, SubmenuIndexScene2);
-            //     scene_manager_next_scene(app->scene_manager, HexViewerSceneScene_2);
-            //     return true;
+        } else if(event.event == SubmenuIndexScene2) {
+            scene_manager_set_scene_state(
+                app->scene_manager, HexViewerSceneMenu, SubmenuIndexScene2);
+            scene_manager_next_scene(app->scene_manager, HexViewerSceneScene_2);
+            return true;
             // } else if (event.event == SubmenuIndexScene3) {
             //     scene_manager_set_scene_state(
             //         app->scene_manager, HexViewerSceneMenu, SubmenuIndexScene3);

+ 32 - 31
scenes/hex_viewer_scene_scene_2.c

@@ -4,44 +4,46 @@
 #include "../helpers/hex_viewer_led.h"
 #include "../views/hex_viewer_scene_2.h"
 
-void hex_viewer_scene_2_callback(HexViewerCustomEvent event, void* context) {
-    furi_assert(context);
-    HexViewer* app = context;
-    view_dispatcher_send_custom_event(app->view_dispatcher, event);
-}
+// void hex_viewer_scene_2_callback(HexViewerCustomEvent event, void* context) {
+//     furi_assert(context);
+//     HexViewer* app = context;
+//     view_dispatcher_send_custom_event(app->view_dispatcher, event);
+// }
 
 void hex_viewer_scene_scene_2_on_enter(void* context) {
     furi_assert(context);
     HexViewer* app = context;
-    hex_viewer_scene_2_set_callback(app->hex_viewer_scene_2, hex_viewer_scene_2_callback, app);
-    view_dispatcher_switch_to_view(app->view_dispatcher, HexViewerViewIdScene2);
+
+    FuriString* buffer;
+    buffer = furi_string_alloc();
+    furi_string_printf(
+        buffer,
+        "File path: %s\nFile size: %lu (0x%lX)",
+        furi_string_get_cstr(app->file_path),
+        app->model->file_size,
+        app->model->file_size);
+
+    // DialogsApp* dialogs = furi_record_open(RECORD_DIALOGS);
+    DialogMessage* message = dialog_message_alloc();
+    dialog_message_set_header(message, "Hex Viewer v2.0", 16, 2, AlignLeft, AlignTop);
+    dialog_message_set_icon(message, &I_hex_10px, 3, 2);
+    dialog_message_set_text(message, furi_string_get_cstr(buffer), 3, 16, AlignLeft, AlignTop);
+    dialog_message_set_buttons(message, NULL, NULL, "Back");
+    dialog_message_show(app->dialogs, message);
+
+    furi_string_free(buffer);
+    dialog_message_free(message);
+    // furi_record_close(RECORD_DIALOGS);
+
+    scene_manager_search_and_switch_to_previous_scene(
+        app->scene_manager, HexViewerViewIdStartscreen);
 }
 
 bool hex_viewer_scene_scene_2_on_event(void* context, SceneManagerEvent event) {
     HexViewer* app = context;
-    bool consumed = false;
-
-    if(event.type == SceneManagerEventTypeCustom) {
-        switch(event.event) {
-            case HexViewerCustomEventScene2Left:
-            case HexViewerCustomEventScene2Right:
-                break;
-            case HexViewerCustomEventScene2Up:
-            case HexViewerCustomEventScene2Down:
-                break;
-            case HexViewerCustomEventScene2Back:
-                notification_message(app->notification, &sequence_reset_red);
-                notification_message(app->notification, &sequence_reset_green);
-                notification_message(app->notification, &sequence_reset_blue);
-                if(!scene_manager_search_and_switch_to_previous_scene(
-                    app->scene_manager, HexViewerSceneMenu)) {
-                        scene_manager_stop(app->scene_manager);
-                        view_dispatcher_stop(app->view_dispatcher);
-                    }
-                consumed = true;
-                break;
-        }
-    }
+    UNUSED(app);
+    UNUSED(event);
+    bool consumed = true;
 
     return consumed;
 }
@@ -50,4 +52,3 @@ void hex_viewer_scene_scene_2_on_exit(void* context) {
     HexViewer* app = context;
     UNUSED(app);
 }
-

+ 2 - 4
views/hex_viewer_startscreen.c

@@ -44,7 +44,7 @@ void hex_viewer_startscreen_draw(Canvas* canvas, HexViewerStartscreenModel* mode
         canvas_set_color(canvas, ColorBlack);
 
         elements_button_left(canvas, model->mode ? "Addr" : "Text");
-        elements_button_right(canvas, "Info");
+        //elements_button_right(canvas, "Info");
         elements_button_center(canvas, "Menu");
 
         int ROW_HEIGHT = 12;
@@ -214,9 +214,7 @@ void hex_viewer_startscreen_enter(void* context) {
     with_view_model(
         instance->view,
         HexViewerStartscreenModel * model,
-        {
-            update_local_model_from_app(instance->context, model);
-        },
+        { update_local_model_from_app(instance->context, model); },
         true);
 }