Fix page changing bug

This commit is contained in:
fvanroie 2021-01-30 00:09:19 +01:00
parent e3bd676202
commit 00b3d1b884

View File

@ -86,7 +86,7 @@ lv_obj_t * kb;
lv_obj_t * pages[HASP_NUM_PAGES];
static lv_font_t * haspFonts[4] = {nullptr, LV_THEME_DEFAULT_FONT_NORMAL, LV_THEME_DEFAULT_FONT_SUBTITLE,
LV_THEME_DEFAULT_FONT_TITLE};
uint8_t current_page = 0;
uint8_t current_page = 1;
/**
* Get Font ID
@ -546,43 +546,39 @@ uint8_t haspGetPage()
void haspSetPage(uint8_t pageid)
{
if(pageid == 0 || pageid == 255) {
Log.warning(TAG_HASP, F("%sCannot change to a layer"));
lv_obj_t * page = get_page_obj(pageid);
if(!page || pageid == 0 || pageid > HASP_NUM_PAGES) {
Log.warning(TAG_HASP, F("Invalid page %u"), pageid);
} else {
lv_obj_t * page = get_page_obj(pageid);
if(!page) {
Log.warning(TAG_HASP, F("Invalid page %u"), pageid);
} else {
Log.notice(TAG_HASP, F("Changing page to %u"), pageid);
current_page = pageid;
lv_scr_load(page);
hasp_object_tree(page, pageid, 0);
}
Log.notice(TAG_HASP, F("Changing page to %u"), pageid);
current_page = pageid;
lv_scr_load(page);
hasp_object_tree(page, pageid, 0);
}
}
void haspLoadPage(const char * pages)
void haspLoadPage(const char * pagesfile)
{
#if HASP_USE_SPIFFS > 0 || HASP_USE_LITTLEFS > 0
if(pages[0] == '\0') return;
if(pagesfile[0] == '\0') return;
if(!filesystemSetup()) {
Log.error(TAG_HASP, F("FS not mounted. Failed to load %s"), pages);
Log.error(TAG_HASP, F("FS not mounted. Failed to load %s"), pagesfile);
return;
}
if(!HASP_FS.exists(pages)) {
Log.error(TAG_HASP, F("Non existing file %s"), pages);
if(!HASP_FS.exists(pagesfile)) {
Log.error(TAG_HASP, F("Non existing file %s"), pagesfile);
return;
}
Log.notice(TAG_HASP, F("Loading file %s"), pages);
Log.notice(TAG_HASP, F("Loading file %s"), pagesfile);
File file = HASP_FS.open(pages, "r");
File file = HASP_FS.open(pagesfile, "r");
dispatch_parse_jsonl(file);
file.close();
Log.trace(TAG_HASP, F("File %s loaded"), pages);
Log.trace(TAG_HASP, F("File %s loaded"), pagesfile);
#else
#if HASP_USE_EEPROM > 0
@ -641,6 +637,11 @@ bool haspSetConfig(const JsonObject & settings)
changed |= configSet(haspThemeId, settings[FPSTR(F_CONFIG_THEME)], F("haspThemeId"));
changed |= configSet(haspThemeHue, settings[FPSTR(F_CONFIG_HUE)], F("haspThemeHue"));
if(haspStartPage == 0) { // TODO: fase out migration code
haspStartPage = 1;
changed = true;
}
if(!settings[FPSTR(F_CONFIG_PAGES)].isNull()) {
changed |= strcmp(haspPagesPath, settings[FPSTR(F_CONFIG_PAGES)]) != 0;
strncpy(haspPagesPath, settings[FPSTR(F_CONFIG_PAGES)], sizeof(haspPagesPath));