fix(calendars): make the Settings toggle the one visibility model (#75)
Reminders never fired for a calendar hidden at system level and nothing hinted at it: the provider only schedules reminder alarms for Calendars.VISIBLE=1, while Calendula filtered with its own disabledCalendarIds pref and parsed isVisibleInSystem without ever using it — two models that could disagree indefinitely. Settings → Calendars now writes Calendars.VISIBLE, one calendar per update (CalendarProvider2 skips its own checkNextAlarm() reschedule for any selection that isn't _id=), and every display predicate reads isVisibleInSystem. The drawer's filter sheet stays a purely in-app declutter and still leaves reminders alone. With VISIBLE=0 the provider creates no alert rows, so there is nothing left to suppress: the disabled-calendar gates, SuppressedReminderStore and the re-enable recovery are gone. A one-shot migration reconciles the retired set with the app's state winning — enabled in-app and syncing gets shown, disabled gets hidden, everything else untouched — so the upgrade changes nothing the user sees. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
16
CHANGELOG.md
16
CHANGELOG.md
@@ -7,6 +7,21 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed
|
||||
- Reminders now arrive for every calendar you have switched on. A calendar that
|
||||
was hidden at system level — switched off in another calendar app, or never
|
||||
switched on after being added — still showed its events and listed their
|
||||
reminders in Calendula, but never notified: Android only schedules reminder
|
||||
alarms for calendars marked visible, and Calendula kept its own separate
|
||||
on/off list that had no say in it. There is now one switch: **Settings →
|
||||
Calendars** turns a calendar on or off for the whole device, so what you see
|
||||
and what reminds you can no longer disagree. Your current selection is carried
|
||||
over on first launch, and calendars whose events aren't stored on this device
|
||||
are left as they are ([#75]).
|
||||
|
||||
The drawer's filter is unchanged and still app-only: hiding a calendar there
|
||||
tidies your view without silencing its reminders.
|
||||
|
||||
## [2.16.0] — 2026-07-24
|
||||
|
||||
### Added
|
||||
@@ -1112,3 +1127,4 @@ automatically, with zero telemetry and no internet permission.
|
||||
[#42]: https://codeberg.org/jlmakiola/calendula/issues/42
|
||||
[#44]: https://codeberg.org/jlmakiola/calendula/issues/44
|
||||
[#70]: https://codeberg.org/jlmakiola/calendula/issues/70
|
||||
[#75]: https://codeberg.org/jlmakiola/calendula/issues/75
|
||||
|
||||
Reference in New Issue
Block a user