fix(calendars): tell two same-named accounts apart (#77)

Calendars were grouped by account name alone, so a Google account and a DAVx5
account for the same address became one group. That is more than a mis-grouping:
the header's source logo and "manage in app" came off cals.first(), so it could
send you to the wrong app; "toggle all" spanned both accounts; and the collapsed
state, keyed on the name, folded both at once.

Grouping now keys on (name, type), in one shared place — Settings → Calendars,
the calendar picker and the drawer's filter each had their own copy with
slightly different fallbacks. The header takes its logo and manage action from
its own group's type, and the collapse set holds the key rather than the name.
Where a name really is shared, each group names the app it comes from, resolved
the same way the source icon is.
This commit is contained in:
2026-07-30 15:23:33 +02:00
parent 34f23ee14e
commit 05b64804bb
9 changed files with 224 additions and 52 deletions

View File

@@ -37,6 +37,25 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
unaffected.
### Fixed
- A month-grid widget stays a month grid. Since 2.16.0 a placed month widget
could redraw itself as the agenda widget a little after any change to your
events, because the release build merged the two widgets into a single class
and Android could no longer tell which of them a widget on your home screen
was ([#89]).
- The back gesture on **Settings → Views** returns to Settings instead of
leaving Settings altogether and dropping you on the calendar. Special dates
did the same ([#81]).
- The dots standing in for the events that didn't fit a day in the month view
now dim with everything else when **Dim completed events** is on. A past day
with four or more events kept its last events at full strength while the rest
faded ([#79]).
- Two accounts that happen to share a name — a Google account and a DAVx5
account for the same address, say — are no longer merged into one group.
They were listed together in Settings → Calendars and in the drawer's filter,
which also meant the group's source icon and its "manage in app" button could
send you to the wrong app, "toggle all" spanned both accounts at once, and
collapsing one collapsed the other. Where a name really is shared, each group
now names the app it comes from ([#77]).
- Search results now show an all-day event's real date. West of UTC — anywhere in
the Americas, say — a search hit was dated one day early, disagreeing with the
day the month, week and agenda views file the same event under ([#82]).
@@ -1169,4 +1188,8 @@ automatically, with zero telemetry and no internet permission.
[#75]: https://codeberg.org/jlmakiola/calendula/issues/75
[#76]: https://codeberg.org/jlmakiola/calendula/issues/76
[#78]: https://codeberg.org/jlmakiola/calendula/issues/78
[#77]: https://codeberg.org/jlmakiola/calendula/issues/77
[#79]: https://codeberg.org/jlmakiola/calendula/issues/79
[#81]: https://codeberg.org/jlmakiola/calendula/issues/81
[#82]: https://codeberg.org/jlmakiola/calendula/issues/82
[#89]: https://codeberg.org/jlmakiola/calendula/issues/89