feat(ui): message-wake toggle + all home pages visible by default

Two independent changes, requested together:

1. Settings > Sound > "Msg wake" (NodePrefs::msg_wake_screen_off,
   0xC0DE002A) lets a user disable UITask::newMsg()'s existing behaviour
   of turning the display on for an incoming message when it was off and
   no companion app is connected. Stored inverted so both a fresh device
   and an existing saved-prefs file default to "on" (today's behaviour).
   New sim_test_set_msg_wake_disabled() hook verifies it without scripting
   Settings navigation -- confirmed end to end via a real A<->R<->B mesh
   in Playwright: message delivered while B's screen is off either wakes
   it (enabled) or doesn't (disabled), checked via real canvas pixels.

2. A brand-new or factory-reset device now shows ALL home pages by
   default instead of a curated 5-page carousel (MyMesh.cpp used to seed
   home_pages_mask = HP_DEFAULT; now seeds 0, which every other read site
   already treated as "all visible" -- HP_DEFAULT is now unused, removed).
   Existing users' saved masks are untouched. New sim_test_get_home_pages_mask()
   getter confirms a fresh instance reads back 0.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Jakub
2026-09-06 22:35:12 +02:00
co-authored by Claude Sonnet 5
parent a18a821326
commit 00c3279fa6
6 changed files with 60 additions and 18 deletions
+1 -1
View File
@@ -1697,7 +1697,7 @@ MyMesh::MyMesh(mesh::Radio &radio, mesh::RNG &rng, mesh::RTCClock &rtc, SimpleMe
_prefs.ringtone2_bpm_idx = 2; // 120 bpm default
_prefs.notif_melody_ad = 0; // built-in advert sound by default
_prefs.advert_sound_scope = ADVERT_SOUND_SCOPE_ALL; // sound every advert by default
_prefs.home_pages_mask = NodePrefs::HP_DEFAULT; // curated everyday carousel; rest opt-in via Home Pages
_prefs.home_pages_mask = 0; // all home pages visible by default (0 = all, see NodePrefs.h)
_prefs.bot_enabled = 0;
_prefs.bot_channel_enabled = 0;
_prefs.bot_channel_idx = 0;