feat: configurable default view + widget-aware back navigation #35

Merged
makiolaj merged 2 commits from feat/view-back-stack into release/v2.9.0 2026-06-25 06:25:16 +00:00
Owner

Closes the two Codeberg reports from @devinside.

#1 — Option to set a default view

New Default view setting (Settings → Appearance) picks the view shown on launch (Month/Week/Day/Agenda). Defaults to Week, so existing users see no change until they choose otherwise.

#2 — Widget UX / back navigation

Replaces CalendarHost's single global view slot with a top-level view back stack rooted at the default (home) view:

  • Widgets carry their source view, so opening a day/event from the Agenda widget keeps you in Agenda and from the Month widget in Month — Back returns there, then home, then exits (instead of always landing on Week). Reminder taps are unchanged.
  • Pill/drawer switches build a visit history that Back retraces step by step (revisiting a view collapses the loop, keeping it bounded).
  • The month widget grid is now interactive: tap a day to open it, or an event bar to open its details (both rooted in Month). Previously only the prev/next/today controls responded.

Notes

  • New ViewBackStackTest covers the pure stack rules; full unit suite + assembleDebug green.
  • Verified on-device (Pixel) across both widgets, the default-view setting, and back/exit chains.

Refs: codeberg.org/jlmakiola/calendula/issues/1, /issues/2

🤖 Generated with Claude Code

Closes the two Codeberg reports from @devinside. ## #1 — Option to set a default view New **Default view** setting (Settings → Appearance) picks the view shown on launch (Month/Week/Day/Agenda). Defaults to Week, so existing users see no change until they choose otherwise. ## #2 — Widget UX / back navigation Replaces CalendarHost's single global view slot with a top-level **view back stack** rooted at the default (home) view: - Widgets carry their source view, so opening a day/event from the Agenda widget keeps you in Agenda and from the Month widget in Month — Back returns there, then home, then exits (instead of always landing on Week). Reminder taps are unchanged. - Pill/drawer switches build a **visit history** that Back retraces step by step (revisiting a view collapses the loop, keeping it bounded). - The **month widget grid is now interactive**: tap a day to open it, or an event bar to open its details (both rooted in Month). Previously only the prev/next/today controls responded. ## Notes - New `ViewBackStackTest` covers the pure stack rules; full unit suite + `assembleDebug` green. - Verified on-device (Pixel) across both widgets, the default-view setting, and back/exit chains. Refs: codeberg.org/jlmakiola/calendula/issues/1, /issues/2 🤖 Generated with [Claude Code](https://claude.com/claude-code)
makiolaj added 2 commits 2026-06-25 06:20:39 +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>
makiolaj merged commit 79e083b4d4 into release/v2.9.0 2026-06-25 06:25:16 +00:00
makiolaj deleted branch feat/view-back-stack 2026-06-25 06:25:16 +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#35