release: v2.9.0 #37

Merged
makiolaj merged 7 commits from release/v2.9.0 into main 2026-06-25 08:11:38 +00:00
Owner

Release candidate v2.9.0 (versionCode 20900). On-device verified on a Pixel 10 from a clean first-run state (R8-minified releaseTest): permission gate, calendar load, both widgets, and the headline changes all pass.

Merging to main triggers release.yaml, which builds + signs the real release, publishes to F-Droid, and creates the v2.9.0 tag + Gitea release.

What's in this release

Added

  • Configurable Default view (Month/Week/Day/Agenda) on startup.
  • Interactive month widget (tap a day / event).
  • Predictive back gesture preview on overlay screens (Android 14+).
  • Honour the system "Remove animations" setting throughout.

Changed

  • Consistent, smoother motion app-wide; Month/Week/Day/Agenda switching now cross-fades while in-view paging keeps its slide.

Fixed

  • Home-screen widgets back out the way you came in; real view history retraced by Back.

Release prep

  • versionName → 2.9.0, versionCode → 20900.
  • CHANGELOG.md [Unreleased][2.9.0] — 2026-06-25.
  • Generated fastlane/.../changelogs/20900.txt.

🤖 Generated with Claude Code

Release candidate **v2.9.0** (versionCode 20900). On-device verified on a Pixel 10 from a clean first-run state (R8-minified `releaseTest`): permission gate, calendar load, both widgets, and the headline changes all pass. Merging to `main` triggers `release.yaml`, which builds + signs the real `release`, publishes to F-Droid, and creates the `v2.9.0` tag + Gitea release. ## What's in this release **Added** - Configurable **Default view** (Month/Week/Day/Agenda) on startup. - Interactive **month widget** (tap a day / event). - **Predictive back** gesture preview on overlay screens (Android 14+). - Honour the system **"Remove animations"** setting throughout. **Changed** - Consistent, smoother motion app-wide; Month/Week/Day/Agenda switching now cross-fades while in-view paging keeps its slide. **Fixed** - Home-screen widgets back out the way you came in; real view history retraced by Back. ## Release prep - `versionName` → 2.9.0, `versionCode` → 20900. - `CHANGELOG.md` `[Unreleased]` → `[2.9.0] — 2026-06-25`. - Generated `fastlane/.../changelogs/20900.txt`. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
makiolaj added 7 commits 2026-06-25 08:02:30 +00:00
Replace CalendarHost's single global view slot with a top-level view
back stack rooted at a user-configurable default view. A lateral move
(pill/drawer/widget) replaces the non-home top; a date tap drills the
day view on top; a base-level BackHandler pops one level until only the
home view remains, then the system exits.

Widgets now carry their source view (EXTRA_SOURCE_VIEW) so a launch
roots the stack in that widget's view: backing out of a day/event opened
from the agenda widget returns to Agenda, and from the month widget to
Month, instead of always landing on Week. Reminder taps keep the
separate detail-key channel and leave the base view untouched.

Add a Default view setting (Settings -> Appearance) backing the stack's
home view; defaults to Week so existing users see no change.

Resolves the two Codeberg reports from @devinside:
- #1 [FR] Option to set default view
- #2 [Bug] Widget UX improvement

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
feat(nav): interactive month widget + history-retracing back
All checks were successful
Translations / check (pull_request) Successful in 28s
CI / ci (pull_request) Successful in 4m18s
119a8afe8e
On-device review follow-ups:

- Month widget grid is now tappable. Day numbers open that day and event
  bars open the event's detail, both rooted in the month view so back
  returns to the grid. Previously only the prev/next/today header
  controls responded — the grid cells were never clickable.

- Pill/drawer view switches now build a visit history instead of
  collapsing to the default view. Back retraces the views you moved
  through (a not-yet-visited view is pushed; revisiting one collapses the
  loop back to it), down to the default, then exits. Widget launches
  still reset to their own view context.

Refs #1, #2 (reported by @devinside).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reviewed-on: #35
Centralise the app's motion vocabulary in CalendarTransitions.kt and route
every surface through it so animation is consistent app-wide:

- Shared expand/collapse, list-item and fade-through helpers; the event-edit
  expand pattern is now the shared one (no duplicate).
- Settings reminder-override rows and the reminder Custom field now expand/
  collapse instead of bare-fading.
- Search and agenda rows animate (fade/relocate) via animateItem.
- Month/week/day slide and the onboarding gates honour the new helpers.
- View switching (month/week/day/agenda) now fades through instead of
  snapping — lateral navigation per M3, while in-view paging keeps its slide.

Add full predictive-back support:

- enableOnBackInvokedCallback in the manifest.
- New Modifier.predictiveBack(onBack) drives the standard preview transform
  (scale/shift/round) following the back gesture; applied to detail, edit,
  search, settings (+ sub-screens & calendar manager via CollapsingScaffold),
  the calendar editor and import — each keeping its existing back semantics.

Reduced-motion guardrail throughout: rememberReduceMotion() (reads the OS
"remove animations" setting, which Compose ignores by default) collapses
spatial motion to a quick fade and skips the back preview.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
docs(changelog): note motion polish, predictive back & reduced-motion
All checks were successful
CI / ci (pull_request) Successful in 4m27s
5d48c90408
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Reviewed-on: #36
chore(release): prepare v2.9.0
All checks were successful
Translations / check (pull_request) Successful in 5s
CI / ci (pull_request) Successful in 9m5s
024deadf78
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
makiolaj scheduled this pull request to auto merge when all checks succeed 2026-06-25 08:02:48 +00:00
makiolaj merged commit a69b161178 into main 2026-06-25 08:11:38 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: makiolaj/calendula#37