Now loads passwords into current variable

This commit is contained in:
Maddox Werts 2024-09-01 16:47:41 -04:00
parent ac3beadfc9
commit 02bd629bd8
3 changed files with 58 additions and 1 deletions

View file

@ -134,7 +134,55 @@ void manager_loadnames(Manager* manager, int page){
// Cleanup
free(split);
}
void manager_loadpass(Manager* manager, char* name) {
// Freeing previous password
if (manager->current != NULL) {
free(manager->current);
}
// DEBUG
FURI_LOG_I(TAG, "Loading password of name %s", name);
// Loading password string
char* data = store_load("Data");
// Splitting string
int count = 0;
char** split = split_string(data, '|', &count);
// Unloading data
free(data);
// Going through string to grab data
for(int i = 0; i < count; i++) {
// Is it a multiple of four?
if (i % 4 == 0) {
// Does the password name match?
if (!strcmp(name, split[i])) {
// Setting the new current password
manager->current = pass_create(
name,
split[i+1],
split[i+2],
0);
// Break!
break;
}
}
}
// Cleanup
free(split);
// DEBUG
FURI_LOG_D(TAG, "Loaded Password: %s, %s, %s", manager->current->name, manager->current->user, manager->current->phrase);
}
void manager_delete(Manager* manager) {
free(manager->names);
for(int i = 0; i < 4; i++) {
free(manager->names[i]);
}
free(manager->current);
free(manager);
}

View file

@ -11,6 +11,8 @@
// Structures
typedef struct {
Password* current;
char* names[4];
int page;
} Manager;
@ -21,6 +23,7 @@ Manager* manager_create();
// Functions
void manager_switchpage(Manager* manager, int dir);
void manager_loadnames(Manager* manager, int page);
void manager_loadpass(Manager* manager, char* name);
void manager_delete(Manager* manager);
#endif

View file

@ -248,6 +248,10 @@ void ui_p_view(Canvas* canvas, UIManager* manager) {
manager_switchpage(manager->manager, 1);
break;
case Ok:
char* pass_name = manager->manager->names[manager->selection];
manager_loadpass(manager->manager, pass_name);
manager->page = 3;
break;
default:
break;
@ -262,6 +266,8 @@ void ui_p_view(Canvas* canvas, UIManager* manager) {
}
void ui_p_vpass(Canvas* canvas, UIManager* manager) {
// TODO: Do this after figuring out how to select password
UNUSED(canvas);
UNUSED(manager);
}
void ui_delete(UIManager* manager) {