mirror of
https://github.com/pelgraine/Meck.git
synced 2026-07-28 20:32:47 +02:00
5ce0540486
The SettingsScreen SUB_CHANNELS sub-screen drives every per-channel action from physical-keyboard hotkeys (Ent: scope, N: notif, T: tone, X/Hold: delete), so on the touch-only watches the channel list rendered but nothing was actionable. Replace it on MECK_TWATCH builds with a standalone WatchChannelConfigScreen following the WatchAlarmScreen / WatchNotesScreen conventions. Desktop builds are unchanged. LIST shows each channel with its region scope tag and notification state (tap to select, tap again or button to open, paged like Notes). DETAIL offers: Region -- opens the watch keyboard via a new TWKB_SCOPE purpose, pre-filled with the current scope, committed through the same setChannel + saveChannels path as desktop (empty submission clears); Clear region -- reverts to the device default directly; Notify -- tap-cycles All -> Mentions -> Off with savePrefs, matching the desktop N-key order. Delete is button-driven rather than touch: a short press (PWR on the S3, boot button on the Plus) arms it, a second press within 3s confirms. Channel 0 remains protected. The tone picker is deliberately absent -- the watch has no audio path. Settings hands off via a _wantsWatchChannels flag polled by UITask::loop (mirrors the _needsTextVKB handshake); Back returns to Settings via gotoSettingsScreen. Keyboard results route through the existing consumeSendRequest purpose dispatch. Note: deleteChannel replicates SettingsScreen's compaction verbatim, including its existing quirk of not shifting channel_notif[] -- kept faithful rather than silently diverging; fix both together if desired. Files: WatchChannelConfigScreen.h (new, both variant dirs), TWatchComposeScreens.h (both variant dirs, TWKB_SCOPE), SettingsScreen.h, UITask.h, UITask.cpp, main.cpp