fix(widget): scale the agenda widget with its size (#51)
The "Upcoming" agenda widget used Glance's default SizeMode.Single: it was composed once at the minimum size and the launcher stretched that single RemoteViews when enlarged, so the text stayed small-widget-sized no matter how big the widget grew. Reported as a "font size" request (#51), but it's really a missing size-response. Switch to SizeMode.Exact (like MonthWidget) and read LocalSize.current to pick one of four tiers (COMPACT/REGULAR/LARGE/XLARGE), scaling type and row metrics. Exact over Responsive so the ~30-day LazyColumn isn't replicated per tier. Width picks the tier, height can only lower it. Width governs how much of a title fits on a row, so it's what should drive type size; height only decides how many rows are visible, so a tall narrow widget shows more events rather than bigger text. Height does act as a cap, though, or a squashed widget would keep the large type its width earned in a sliver of space. Thresholds are spread over the width range a phone actually produces (measured on a Pixel/Nova: a compact widget is 222dp wide, a large one 378dp) rather than a theoretical range, so the tiers are reachable in practice; XLARGE is reserved for tablets/foldables. COMPACT reproduces the original constants verbatim, so an existing widget is visually unchanged. The tier logic lives in a pure, Glance-free AgendaScale.kt (compose.ui.unit only) and is JVM-tested: the COMPACT baseline, the width buckets, the height cap stepping a squashed widget down, and that height never raises the tier. No new setting: the widget follows the size the launcher/user already chose. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -7,6 +7,14 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
|
||||
## [Unreleased]
|
||||
|
||||
### Fixed
|
||||
- The "Upcoming" agenda widget now scales its text and rows to the size you give
|
||||
it. Previously it was laid out once for the smallest size and simply stretched
|
||||
when enlarged, so the text stayed small no matter how big you made the widget.
|
||||
Now a bigger widget gets bigger, more readable type and roomier rows, while the
|
||||
default size looks exactly as before — no new setting; it follows the size you
|
||||
already chose ([#51]).
|
||||
|
||||
## [2.16.0] — 2026-07-17
|
||||
|
||||
### Added
|
||||
@@ -1038,5 +1046,6 @@ automatically, with zero telemetry and no internet permission.
|
||||
[#47]: https://codeberg.org/jlmakiola/calendula/issues/47
|
||||
[#48]: https://codeberg.org/jlmakiola/calendula/issues/48
|
||||
[#49]: https://codeberg.org/jlmakiola/calendula/issues/49
|
||||
[#51]: https://codeberg.org/jlmakiola/calendula/issues/51
|
||||
[#52]: https://codeberg.org/jlmakiola/calendula/issues/52
|
||||
[#60]: https://codeberg.org/jlmakiola/calendula/issues/60
|
||||
|
||||
Reference in New Issue
Block a user