feat(views): customizable quick-switch cycle + drawer order (#24) #54
Reference in New Issue
Block a user
Delete Branch "feat/quick-switch-view-config"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #24.
Adds a Views settings section (Settings → Views) with two independent, drag-to-reorder lists:
This covers the maintainer-comment scope on #24: enable/disable + reorder the quick-switch, and reorder the drawer, as two separate settings.
Implementation
QuickSwitchConfig(order + enabled set) and a drawer order persisted inSettingsPrefs(comma-joined enum names;!marks a disabled view). Missing views append enabled, unknowns drop — a future view auto-joins both lists.next()cycles the configured enabled list;CalendarDrawerrenders from the drawer order. Both threaded fromCalendarHostviaCalendarHostViewModel.ReorderableColumn: dependency-free, fixed-pitch drag reordering with animated neighbour displacement and a settle-on-drop (noLazyColumn, since settings are a singleverticalScrollcolumn). One DataStore write per gesture.Tests
SettingsPrefsTest: persistence round-trips, parsing (append/drop/disabled markers) for both lists.ViewBackStackTest: next()/cycle behaviour with a restricted, reordered list.release/v2.13.0 merged in; no conflicts.
🤖 Generated with Claude Code