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 // Cleanup
free(split); 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) { void manager_delete(Manager* manager) {
free(manager->names); for(int i = 0; i < 4; i++) {
free(manager->names[i]);
}
free(manager->current);
free(manager); free(manager);
} }

View file

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

View file

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