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
|
// 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);
|
||||||
}
|
}
|
|
@ -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
|
|
@ -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) {
|
||||||
|
|
Loading…
Reference in a new issue