feat(filter,settings): calendar filter in drawer + settings (v0.5.0)
All checks were successful
CI / ci (push) Successful in 12m42s
CI / ci (pull_request) Successful in 12m23s

M3 — calendar filter: the navigation drawer now hosts the calendar list
inline (grouped by account, colour swatch + checkbox per calendar). Hidden
calendars are persisted app-side and filtered centrally in the repository,
so month/week/day re-filter live the moment a checkbox flips. Drawer trimmed
to Today, the calendar filter, and Settings, with leading icons and a clear
title/section type scale; the stubbed jump-to-date entry (M2) was removed.

M4 — settings: full-screen destination with appearance (theme System/Light/
Dark, Material You dynamic colour auto-disabled < API 31, week start Auto/Mon/
Sun), language (per-app locales via AppCompat, persisted to API 29), and an
about section (version, licence, source link). Theme is driven by one
activity-scoped settings source so changes apply app-wide at once. Week start
now drives the month grid and week view; Auto follows the locale.

Also:
- default view switched from month to week
- Settings screen handles system back (was closing the app)
- fix pre-existing NonObservableLocale/LocalContextConfigurationRead lint
  errors in EventDetailScreen so CI lint is green again
- versionName/versionCode bumped to 0.5.0 / 5

Tests: repository hidden-filter (incl. live re-emit), SettingsPrefs round-trip
+ week-start resolution, filter grouping. lint + unit tests + assembleDebug green.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
2026-06-10 22:55:33 +02:00
parent efa0abbaed
commit adcbed6e02
30 changed files with 1346 additions and 141 deletions

View File

@@ -6,15 +6,19 @@
|---|---|---|
| v0.1 | Foundation & CI | complete |
| v0.2 | Data Layer & Permission Flow | complete |
| v0.3 | Month view | in progress |
| v0.4 | Week view | in progress |
| v0.5 | Day view | pending |
| v0.6 | Event Detail Sheet | pending |
| v0.7 | Filter & Settings | pending |
| v0.3 | Month + Week + Day views, view switcher | complete |
| v0.4 | Event Detail (S4) + humanized recurrence | complete |
| v0.5 | Calendar filter (M3) + Settings (M4) | complete |
| v1.0 | Polish + jump-to-date (M2), F-Droid release | pending |
Delivery ran ahead of the original table: Day view (S3) shipped in v0.3 and
Event Detail (S4) in v0.4, so the Filter/Settings milestone became v0.5.
Jump-to-date (M2) was deferred out of v0.5 and folds into the v1.0 polish pass.
## v1.0 — First Public Release
All V1 features shipped, polished, on F-Droid. Read-only calendar.
Remaining before v1.0: jump-to-date (M2) and a UI polish/QA pass.
## v2.0 — Write Support

View File

@@ -4,9 +4,9 @@
## Status
**Milestone:** v0.4Week view (in progress)
**Phase:** Month + Week views implemented; cross-cutting wiring (detail sheet,
filter, settings, jump-to-date) still stubbed
**Milestone:** v0.5Calendar filter (M3) + Settings (M4) (complete)
**Phase:** All V1 screens and cross-cutting wiring done except jump-to-date
(M2), which is deferred to the v1.0 polish pass
## Progress
@@ -16,13 +16,15 @@ filter, settings, jump-to-date) still stubbed
- [x] Plan 02 written and executed — data layer + permission flow + debug screen
- [x] Month view (S1) — 6-week grid, event dots, today marker, swipe nav, three states (replaces debug screen)
- [x] Week view (S2) — time schedule with overlap-resolved lanes, all-day strip, swipe nav, three states
- [x] View-switcher (M1) wired — cycles Month ↔ Week (Day joins once S3 lands)
- [ ] Day view (S3)
- [ ] Event-detail sheet (S4) — week/month event taps are currently no-ops
- [ ] Filter sheet (M3), Settings (M4), Jump-to-date (M2) — drawer entries stubbed
- [x] Day view (S3) — single-column slice reusing the week layout
- [x] View-switcher (M1) wired — cycles Month ↔ Week ↔ Day
- [x] Event-detail screen (S4) — full-screen, humanized recurrence
- [x] Filter sheet (M3) — per-calendar visibility, grouped by account, persisted, applied centrally in the repository
- [x] Settings (M4) — appearance (theme, dynamic colour, week start), language (per-app locales), about
- [ ] Jump-to-date (M2) — drawer entry still stubbed (deferred to v1.0)
## Next
1. Day view (S3) — slot it into the view-switcher cycle
2. Event-detail sheet (S4) — wire month-day and week-event taps to it
3. Revisit month/week UI polish + shared anchor-date continuity across views
1. Jump-to-date (M2) — date picker from the drawer, reachable on every view
2. UI polish / QA pass across all views before v1.0
3. F-Droid release of v1.0