From cb46a7c1b957269c0cab22702208de0d632f5b65 Mon Sep 17 00:00:00 2001 From: objnull Date: Sun, 8 Sep 2024 21:31:25 -0400 Subject: [PATCH] Re-Organized code --- project/ui/app.h | 2 +- project/ui/scenes/create.c | 80 +++++++++++++++++--------------------- project/ui/scenes/cred.c | 10 ++--- project/ui/scenes/type.c | 13 +++++-- project/ui/scenes/view.c | 6 +-- project/ui/ui.c | 2 +- 6 files changed, 53 insertions(+), 60 deletions(-) diff --git a/project/ui/app.h b/project/ui/app.h index e308f5e..f132f03 100644 --- a/project/ui/app.h +++ b/project/ui/app.h @@ -54,8 +54,8 @@ typedef struct { Popup* popup; Manager* manager; + char* keyboard; int selection; - char* temp; } FP_App; #endif \ No newline at end of file diff --git a/project/ui/scenes/create.c b/project/ui/scenes/create.c index 2f4be2c..0c0012b 100644 --- a/project/ui/scenes/create.c +++ b/project/ui/scenes/create.c @@ -25,59 +25,49 @@ void FP_Scene_Enter_Create(void* context) { submenu_reset(app->submenu); // Checking if we typed something before - if (app->temp) { - // Boolean - bool is_field = true; + if (app->keyboard) { + // Did we already start a password? + if (!app->manager->new) { + app->manager->new = malloc(sizeof(Password)); + } - // Checking if it's any of the following: - if (!strcmp(app->temp, "Username")) {is_field = false;} - if (!strcmp(app->temp, "Password")) {is_field = false;} - - // We're good! - if(is_field) { - // Did we already start a password? - if (!app->manager->new) { - app->manager->new = malloc(sizeof(Password)); + // Checking what we selected + switch (app->selection) { + case 0: // Name + // Does name already exist? + if (app->manager->new->name) { + free(app->manager->new->name); } - // Checking what we selected - switch (app->selection) { - case 0: // Name - // Does name already exist? - if (app->manager->new->name) { - free(app->manager->new->name); - } + // Copying it + app->manager->new->name = malloc(sizeof(char*)); + strcpy(app->manager->new->name, app->keyboard); - // Copying it - app->manager->new->name = malloc(sizeof(char*)); - strcpy(app->manager->new->name, app->temp); - - break; - case 1: // Username - // Does user already exist? - if (app->manager->new->user) { - free(app->manager->new->user); - } - - // Copying it - app->manager->new->user = malloc(sizeof(char*)); - strcpy(app->manager->new->user, app->temp); - break; - case 2: // Password - // Does phrase already exist? - if (app->manager->new->phrase) { - free(app->manager->new->phrase); - } - - // Copying it - app->manager->new->phrase = malloc(sizeof(char*)); - strcpy(app->manager->new->phrase, app->temp); - break; + break; + case 1: // Username + // Does user already exist? + if (app->manager->new->user) { + free(app->manager->new->user); } + + // Copying it + app->manager->new->user = malloc(sizeof(char*)); + strcpy(app->manager->new->user, app->keyboard); + break; + case 2: // Password + // Does phrase already exist? + if (app->manager->new->phrase) { + free(app->manager->new->phrase); + } + + // Copying it + app->manager->new->phrase = malloc(sizeof(char*)); + strcpy(app->manager->new->phrase, app->keyboard); + break; } // Freeing temp - free(app->temp); + free(app->keyboard); } // Options diff --git a/project/ui/scenes/cred.c b/project/ui/scenes/cred.c index c65f4da..9448aa8 100644 --- a/project/ui/scenes/cred.c +++ b/project/ui/scenes/cred.c @@ -17,16 +17,19 @@ void FP_Scene_Enter_Cred(void* context) { text_box_reset(app->textbox); // Setting text - if (!strcmp(app->temp, "Username")) { + switch (app->selection) { + case 0: // Username text_box_set_text( app->textbox, app->manager->current->user ); - } else { + break; + case 1: // Password text_box_set_text( app->textbox, app->manager->current->phrase ); + break; } // Send view to Flipper @@ -35,9 +38,6 @@ void FP_Scene_Enter_Cred(void* context) { void FP_Scene_Exit_Cred(void* context) { // Setting context FP_App* app = context; - - // Free the temp string - free(app->temp); // Reset menu dialog_ex_reset(app->dialog); diff --git a/project/ui/scenes/type.c b/project/ui/scenes/type.c index 8e6757c..3d8191b 100644 --- a/project/ui/scenes/type.c +++ b/project/ui/scenes/type.c @@ -7,7 +7,7 @@ void FP_Scene_Callback_Type(void* context) { FP_App* app = context; // DEBUG - FURI_LOG_D(TAG, "Typed: %s", app->temp); + FURI_LOG_D(TAG, "Typed: %s", app->keyboard); // Going back a page scene_manager_previous_scene(app->scene_manager); @@ -19,15 +19,20 @@ void FP_Scene_Enter_Type(void* context) { // Reset view text_input_reset(app->textinput); - // Creating temp string - app->temp = malloc(sizeof(char*)); + // Does the keyboard variable still have something in it? + if (app->keyboard) { + free(app->keyboard); + } + + // Creating keyboard string + app->keyboard = malloc(sizeof(char*)); // Setting stuff text_input_set_result_callback( app->textinput, FP_Scene_Callback_Type, app, - app->temp, + app->keyboard, 255, true ); diff --git a/project/ui/scenes/view.c b/project/ui/scenes/view.c index 42c97d1..f97f383 100644 --- a/project/ui/scenes/view.c +++ b/project/ui/scenes/view.c @@ -69,13 +69,11 @@ bool FP_Scene_Event_View(void* context, SceneManagerEvent event) { // What did we press? switch (event.event) { case FP_Scene_View_Event_Username: - app->temp = malloc(sizeof(char*)); - app->temp = "Username"; + app->selection = 0; scene_manager_next_scene(app->scene_manager, FP_Scene_Cred); break; case FP_Scene_View_Event_Password: - app->temp = malloc(sizeof(char*)); - app->temp = "Password"; + app->selection = 1; scene_manager_next_scene(app->scene_manager, FP_Scene_Cred); break; case FP_Scene_View_Event_BadUSB: diff --git a/project/ui/ui.c b/project/ui/ui.c index 0bc9218..d6604d8 100644 --- a/project/ui/ui.c +++ b/project/ui/ui.c @@ -143,6 +143,6 @@ void fp_app_free(FP_App* app) { text_box_free(app->textbox); submenu_free(app->submenu); popup_free(app->popup); - free(app->temp); + free(app->keyboard); free(app); } \ No newline at end of file