Sort settings into the places you'd look for them (#69)
Appearance had become the drawer everything got tossed into: 18 rows, half of which weren't appearance at all. Views held three. Backup hid inside the calendar manager, where nobody goes looking for "keep a copy of my calendars". The hub now reads as three labelled groups — look & behaviour, data, app — and everything sits under the heading it belongs to: - Appearance keeps theme/colour, the two fonts, and the app name (18 → 6). - Views takes the per-view settings, grouped by the view they change: all views, month, week & day, agenda — then the two ordering lists (3 → 17). - Widgets & tiles is new: the agenda widget's own range and size, plus the Quick Settings tile. "Agenda range" no longer sits one row above "Agenda widget range" pretending to be the same setting. - Backup & restore is new: export, restore and automatic backup, lifted out of the calendar manager, which keeps a pointer row to it. Same screen logic, same either/or fallback when there's nothing exportable; it shares CalendarsViewModel and is hoisted in CalendarHost like the manager, since both are driven by the calendar list rather than by preferences. Descriptions follow one rule now: a toggle says what happens when it's on (Dynamic colour finally does), and a picker row shows its value, with the explanation in the picker itself when the value alone says nothing — the shape widget size and month style already used. Four picker descriptions added, no string keys renamed or removed, so the translations stay consistent. SettingsScreen.kt is split one file per sub-screen (2108 → 409 lines); the 2000-line single file was why this drifted in the first place. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -64,7 +64,9 @@ flowchart TD
|
||||
- **`ui/`** — one package per screen, each with Screen + ViewModel +
|
||||
UiState. Shared pieces in `ui/common/` (OptionCard — the app's only
|
||||
sanctioned selection-dialog style —, recurrence humanizer, FAB column,
|
||||
drawer, transitions).
|
||||
drawer, transitions). `ui/settings/` is the exception to "one file per
|
||||
screen": one `SettingsViewModel` feeds a hub (`SettingsScreen.kt`) plus a
|
||||
sub-screen per category, each in its own `*Settings.kt`.
|
||||
|
||||
## Navigation
|
||||
|
||||
|
||||
Reference in New Issue
Block a user