mirror of
https://github.com/MarekZegare4/MeshCore-Solo.git
synced 2026-07-31 09:18:12 +00:00
fix(ui): Favourites page polish + upgrade migration
Render issues: - Drop the "FAVOURITES" title — it overlapped the node-name/battery top bar; the page-dots indicator already identifies the page - Use the locally-computed content_y (matches other home pages) so tiles sit below the dots row instead of starting at headerH() + sepH() - Add 2 px top/bottom margin inside the grid so cells don't hug the dots or the panel edge Upgrade migration (visibility + position): - Newly-loaded prefs with an older sentinel OR a non-default mask had HP_FAVOURITES off and could not be enabled — DataStore::loadPrefsInt now ORs HP_FAVOURITES into home_pages_mask whenever the sentinel doesn't match the current schema - Existing page_order_set users were stuck because FAVOURITES wasn't in page_order, so movePageInOrder bailed — ensurePageOrderInit now detects the missing FAVOURITES entry and inserts it right after CLOCK, shifting the tail; if the array is already full the page still appears via the buildVisibleOrder fallback Bug fix in ensurePageOrderInit verification loop: iterated to HPB_COUNT (12) over a PAGE_ORDER_LEN (11) array → one OOB read per call. Now bounded to PAGE_ORDER_LEN. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -314,6 +314,12 @@ void DataStore::loadPrefsInt(const char *filename, NodePrefs& _prefs, double& no
|
||||
if (sentinel != NodePrefs::SCHEMA_SENTINEL) {
|
||||
MESH_DEBUG_PRINTLN("prefs schema sentinel mismatch: got 0x%08X, expected 0x%08X — re-saving on next change",
|
||||
(unsigned)sentinel, (unsigned)NodePrefs::SCHEMA_SENTINEL);
|
||||
// 0xC0DE0001 → 0xC0DE0002: FAVOURITES home page added. Older saves have it
|
||||
// implicitly off (their mask doesn't include HP_FAVOURITES); turn it on so
|
||||
// upgraded users see the new page by default and can toggle it later.
|
||||
if (_prefs.home_pages_mask != 0) {
|
||||
_prefs.home_pages_mask |= NodePrefs::HP_FAVOURITES;
|
||||
}
|
||||
}
|
||||
|
||||
file.close();
|
||||
|
||||
Reference in New Issue
Block a user