Now loads passwords into current variable
This commit is contained in:
parent
ac3beadfc9
commit
02bd629bd8
3 changed files with 58 additions and 1 deletions
|
@ -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);
|
||||
}
|
|
@ -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
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in a new issue