Kiosk: apply schedule engine in playback and add System Settings toggle

ScrollerPage now resolves the active Block from ScheduleManager (reusing
the existing stream-switch path), honoring dynamicAudio true/false and
falling back to local selection for gaps, no schedule, or toggle off.
Adds a 'Schedule' On/Off entry (default On) in System Settings persisted
in config.yaml, and config plumbing (proclamation.schedule_enabled). All
on-device schedule times remain 12h AM/PM.
This commit is contained in:
NeilClack
2026-09-29 10:34:45 -05:00
parent 509c925480
commit da0b6ffd5e
15 changed files with 959 additions and 41 deletions
+10 -7
View File
@@ -7,19 +7,21 @@ namespace settings = radiantwave::settings;
TEST(SystemSettingsMenuTest, ListsTheSystemSettingsInOrder) {
const auto entries = settings::systemSettingEntries();
ASSERT_EQ(entries.size(), 6u);
ASSERT_EQ(entries.size(), 7u);
EXPECT_EQ(entries[0].label, "Email Address");
EXPECT_EQ(entries[0].id, settings::SystemSettingId::EmailAddress);
EXPECT_EQ(entries[1].label, "License Key");
EXPECT_EQ(entries[1].id, settings::SystemSettingId::LicenseKey);
EXPECT_EQ(entries[2].label, "System Name");
EXPECT_EQ(entries[2].id, settings::SystemSettingId::SystemName);
EXPECT_EQ(entries[3].label, "WiFi Setup");
EXPECT_EQ(entries[3].id, settings::SystemSettingId::WiFiSetup);
EXPECT_EQ(entries[4].label, "Time Zone Setup");
EXPECT_EQ(entries[4].id, settings::SystemSettingId::Timezone);
EXPECT_EQ(entries[5].label, "Date Format");
EXPECT_EQ(entries[5].id, settings::SystemSettingId::DateFormat);
EXPECT_EQ(entries[3].label, "Schedule");
EXPECT_EQ(entries[3].id, settings::SystemSettingId::Schedule);
EXPECT_EQ(entries[4].label, "WiFi Setup");
EXPECT_EQ(entries[4].id, settings::SystemSettingId::WiFiSetup);
EXPECT_EQ(entries[5].label, "Time Zone Setup");
EXPECT_EQ(entries[5].id, settings::SystemSettingId::Timezone);
EXPECT_EQ(entries[6].label, "Date Format");
EXPECT_EQ(entries[6].id, settings::SystemSettingId::DateFormat);
}
TEST(SystemSettingsMenuTest, LabelsAreNonEmptyAndUnique) {
@@ -41,6 +43,7 @@ TEST(SystemSettingsMenuTest, EveryEntryMapsToAKnownPage) {
case settings::SystemSettingId::EmailAddress:
case settings::SystemSettingId::LicenseKey:
case settings::SystemSettingId::SystemName:
case settings::SystemSettingId::Schedule:
case settings::SystemSettingId::WiFiSetup:
case settings::SystemSettingId::Timezone:
case settings::SystemSettingId::DateFormat: