Created Page Switching system (FIX INPUT SYSTEM)

This commit is contained in:
Maddox Werts 2024-09-01 15:50:51 -04:00
parent 5d2fba270d
commit a8200f7ce4
2 changed files with 39 additions and 2 deletions

View file

@ -49,7 +49,35 @@ Manager* manager_create() {
} }
// Functions // Functions
void manager_switchpage(Manager* manager, int dir) {
// Switching page
manager->page += dir;
// Avoiding empty pages
if (manager->page < 0) {manager->page = 0;}
// Loading names
manager_loadnames(manager, manager->page);
}
void manager_loadnames(Manager* manager, int page){ void manager_loadnames(Manager* manager, int page){
// DEBUG
FURI_LOG_D(TAG, "Freeing previous names");
// Freeing all prior names
for (int i = 0; i < 4; i++) {
// Checking if this name exists:
if (manager->names[i] != NULL) {
// DEBUG
FURI_LOG_D(TAG, "Freed %s", manager->names[i]);
// Freeing name
free(manager->names[i]);
} else {
// DEBUG
FURI_LOG_E(TAG, "Name %i does not exist!", i);
}
}
// Loading the next four passwords // Loading the next four passwords
char* data = store_load("Data"); char* data = store_load("Data");
@ -57,6 +85,9 @@ void manager_loadnames(Manager* manager, int page){
int count = 0; int count = 0;
char** split = split_string(data, '|', &count); char** split = split_string(data, '|', &count);
// Freeing data
free(data);
// Temporary variables // Temporary variables
int i_pass = 0; int i_pass = 0;
int i_name = 0; int i_name = 0;
@ -68,6 +99,9 @@ void manager_loadnames(Manager* manager, int page){
// It's another password! // It's another password!
i_pass++; i_pass++;
// DEBUG
FURI_LOG_I(TAG, "(%i) Scanning password %s...", i_pass, split[i]);
// Is it on our page? // Is it on our page?
if (i_pass > page * 4 if (i_pass > page * 4
&& i_pass <= (page * 4) + 4) { && i_pass <= (page * 4) + 4) {
@ -78,14 +112,16 @@ void manager_loadnames(Manager* manager, int page){
i_name++; i_name++;
// DEBUG // DEBUG
FURI_LOG_I(TAG, "Added %s to names", split[i]); FURI_LOG_D(TAG, "Added %s to names", split[i]);
// Too big?
if (i_name > 3) {break;}
} }
} }
} }
// Cleanup // Cleanup
free(split); free(split);
free(data);
} }
void manager_delete(Manager* manager) { void manager_delete(Manager* manager) {
free(manager->names); free(manager->names);

View file

@ -19,6 +19,7 @@ typedef struct {
Manager* manager_create(); Manager* manager_create();
// Functions // Functions
void manager_switchpage(Manager* manager, int dir);
void manager_loadnames(Manager* manager, int page); void manager_loadnames(Manager* manager, int page);
void manager_delete(Manager* manager); void manager_delete(Manager* manager);