Revamped storing mechanism
This commit is contained in:
parent
cb46a7c1b9
commit
3ce049aee1
2 changed files with 14 additions and 18 deletions
|
@ -104,16 +104,21 @@ void manager_savepass(Password* pass) {
|
|||
// Our resulting string
|
||||
char* result = store_load("Data");
|
||||
|
||||
// Storing important bits from password
|
||||
const char* name = pass->name;
|
||||
const char* user = pass->user;
|
||||
const char* phrase = pass->phrase;
|
||||
|
||||
// Freeing password
|
||||
pass_free(pass);
|
||||
|
||||
// Is the result empty?
|
||||
if(!result) {
|
||||
// Free prior result
|
||||
free(result);
|
||||
|
||||
// Allocating result
|
||||
FuriString* n_result = furi_string_alloc();
|
||||
|
||||
// Setting stuff
|
||||
furi_string_printf(n_result, "%s|%s|%s|0", pass->name, pass->user, pass->phrase);
|
||||
furi_string_printf(n_result, "%s|%s|%s|0", name, user, phrase);
|
||||
|
||||
// Saving the data
|
||||
char* data = malloc(sizeof(char));
|
||||
|
@ -123,19 +128,12 @@ void manager_savepass(Password* pass) {
|
|||
// Cleanup
|
||||
furi_string_free(n_result);
|
||||
free(data);
|
||||
free(pass);
|
||||
} else {
|
||||
// Our new stuff
|
||||
FuriString* new_addon = furi_string_alloc();
|
||||
|
||||
// Adding the Name
|
||||
furi_string_printf(new_addon, "|%s|%s|%s|0", pass->name, pass->user, pass->phrase);
|
||||
|
||||
// New result
|
||||
FuriString* new_result = furi_string_alloc();
|
||||
|
||||
// Appending addon to result
|
||||
furi_string_printf(new_result, "%s%s", result, furi_string_get_cstr(new_addon));
|
||||
furi_string_printf(new_result, "%s|%s|%s|%s|0", result, name, user, phrase);
|
||||
|
||||
// Saving the data
|
||||
char* data = malloc(sizeof(char));
|
||||
|
@ -143,11 +141,9 @@ void manager_savepass(Password* pass) {
|
|||
store_save("Data", data);
|
||||
|
||||
// Cleanup
|
||||
furi_string_free(new_addon);
|
||||
furi_string_free(new_result);
|
||||
free(result);
|
||||
free(data);
|
||||
free(pass);
|
||||
}
|
||||
}
|
||||
void manager_loadpass(Manager* manager, char* name) {
|
||||
|
|
|
@ -28,7 +28,7 @@ void FP_Scene_Enter_Create(void* context) {
|
|||
if (app->keyboard) {
|
||||
// Did we already start a password?
|
||||
if (!app->manager->new) {
|
||||
app->manager->new = malloc(sizeof(Password));
|
||||
app->manager->new = pass_init("", "", "", 0);
|
||||
}
|
||||
|
||||
// Checking what we selected
|
||||
|
@ -37,10 +37,10 @@ void FP_Scene_Enter_Create(void* context) {
|
|||
// Does name already exist?
|
||||
if (app->manager->new->name) {
|
||||
free(app->manager->new->name);
|
||||
app->manager->new->name = malloc(sizeof(char*));
|
||||
}
|
||||
|
||||
// Copying it
|
||||
app->manager->new->name = malloc(sizeof(char*));
|
||||
strcpy(app->manager->new->name, app->keyboard);
|
||||
|
||||
break;
|
||||
|
@ -48,20 +48,20 @@ void FP_Scene_Enter_Create(void* context) {
|
|||
// Does user already exist?
|
||||
if (app->manager->new->user) {
|
||||
free(app->manager->new->user);
|
||||
app->manager->new->user = malloc(sizeof(char*));
|
||||
}
|
||||
|
||||
// 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);
|
||||
app->manager->new->phrase = malloc(sizeof(char*));
|
||||
}
|
||||
|
||||
// Copying it
|
||||
app->manager->new->phrase = malloc(sizeof(char*));
|
||||
strcpy(app->manager->new->phrase, app->keyboard);
|
||||
break;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue