First stable release. Merging this bumps versionName to 1.0.0 and triggers the release pipeline (F-Droid, Codeberg, Play). **App** - CalDAV sync built in, with Agendula's own task store; OpenTasks / tasks.org stay available and can be copied over in Settings → Storage - repeating tasks, several reminders per task, lists managed in the app, iCalendar import/export, widget and Quick Settings tile - a list can be kept out of the smart lists (#18) and gets its own notification channel (#17) - duplicate a task with its subtasks (#16) - HTML descriptions shown as plain text (#15) - relative day words in reminder notifications (#14) - asks for exact-alarm access instead of claiming USE_EXACT_ALARM, and re-arms reminders when that access changes **Release plumbing** - floret-kit bumped to v0.4.0; the old pin was never pushed, so a clean clone couldn't check out the submodule. 0.4.0 drops CrashConfig.issueTitle (crash issues are always filed in English) - prebuilt .so files ship unstripped, so the build no longer depends on whether an NDK is installed; now checked by check_reproducible_release.sh - official F-Droid recipe in docs/fdroid-official/, to submit to fdroiddata once v1.0.0 is tagged - Google Play: fastlane uploads the AAB and every locale's What's New after the F-Droid release; a separate listing lane pushes text and graphics from the fastlane tree, which CI now checks against Play's limits - store listing: title "Agendula: Tasks" in every locale, icon, feature graphic, screenshots and 1.0.0 changelogs in en-US, en-GB, de-DE and pt-BR crash_report_issue_title is now unused but stays until Weblate removes the translated copies. Closes #14, closes #15, closes #16, closes #17, closes #18 Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de> Reviewed-on: https://codeberg.org/jlmakiola/agendula/pulls/20
140 lines
6.5 KiB
Markdown
140 lines
6.5 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to this project are documented here. The format follows
|
|
[Keep a Changelog](https://keepachangelog.com/); the `versionName` committed in
|
|
`app/build.gradle.kts` is the source of truth for a release (see
|
|
`docs/RELEASING.md`), and the `vX.Y.Z` tag is minted by the pipeline.
|
|
|
|
## [Unreleased]
|
|
|
|
## [1.0.0] - 2026-09-21
|
|
|
|
### Added
|
|
- CalDAV sync built in: Nextcloud, Radicale, Baïkal and more.
|
|
- Agendula keeps your tasks itself, no other app needed. Copy them over from
|
|
OpenTasks or tasks.org in Settings → Storage.
|
|
- Repeating tasks, several reminders per task, lists managed in the app,
|
|
iCalendar import and export, a home-screen widget and a Quick Settings tile.
|
|
|
|
### Changed
|
|
- New settings for all-day reminders, snooze length, sync interval, time format
|
|
and week start.
|
|
|
|
## [0.4.0] - 2026-08-31
|
|
|
|
### Added
|
|
- Agendula now speaks **German** and **Brazilian Portuguese**, the first
|
|
community translations. Pick one under **Settings → App language**, or in
|
|
Android's own per-app language settings; leave it on *System default* and
|
|
Agendula follows your phone. Anything not yet translated falls back to
|
|
English.
|
|
- Agendula can now be translated. Pick or request a language on Weblate and
|
|
translate in the browser — the link sits at the top of the language picker in
|
|
**Settings → App language**. Partial translations are fine; anything
|
|
untranslated falls back to English.
|
|
|
|
### Changed
|
|
- Agendula's home is now **Codeberg** (`jlmakiola/agendula`) — that's where the
|
|
source, issues, pull requests and releases live. The Source and License links
|
|
in Settings, the issue-reporting link and the F-Droid metadata all point there
|
|
now. The self-hosted Gitea instance stays as build infrastructure.
|
|
|
|
## [0.3.2] - 2026-07-20
|
|
|
|
### Fixed
|
|
- Releases reach the Codeberg download channel again. 0.3.1 published to
|
|
F-Droid but never appeared on Codeberg, so if you install from there — or
|
|
through Obtainium — this is the release that finally carries 0.3.0's
|
|
launch-crash fix. The app itself is unchanged from 0.3.1.
|
|
|
|
## [0.3.1] - 2026-07-20
|
|
|
|
### Fixed
|
|
- Agendula no longer crashes on launch. Every 0.3.0 install was affected: the
|
|
release build stripped a constructor that the background-work scheduler needs
|
|
to open its database, and that happens before the app draws anything.
|
|
|
|
## [0.3.0] - 2026-07-19
|
|
|
|
### Added
|
|
- Reminders: Agendula now delivers your due reminders itself. A one-time setup
|
|
step explains this and asks for notification access, and a master switch in
|
|
Settings turns the whole thing off again.
|
|
- A Settings screen, from the gear on the overview: appearance and theme, which
|
|
fields the task form shows, your default list, and reminder defaults.
|
|
- The overview leads with Today — a progress ring showing how much of today
|
|
you've finished — followed by a live preview of what's coming up next.
|
|
- Search across every task, open or completed, from the top bar.
|
|
- A proper app icon.
|
|
|
|
### Changed
|
|
- A tidier top bar: no app title, with search and settings pinned to the right.
|
|
|
|
## [0.2.2] - 2026-07-19
|
|
|
|
### Fixed
|
|
- Release automation now reliably mirrors each release to the Codeberg mirror
|
|
(signed APK + SHA-256 checksum). The 0.2.1 attempt failed when the release tag
|
|
had already been synced to Codeberg.
|
|
|
|
## [0.2.1] - 2026-07-19
|
|
|
|
### Added
|
|
- Releases are now also published to the Codeberg mirror as a direct download:
|
|
each release carries the signed APK plus a SHA-256 checksum, for users who
|
|
don't use F-Droid.
|
|
|
|
## [0.2.0] - 2026-06-27
|
|
|
|
### Added
|
|
- M2 Material 3 Expressive UI — the app is fully navigable now: the
|
|
provider/permission onboarding gate, the lists overview (smart lists + user
|
|
lists grouped by account), and the task list (swipe-to-complete / -delete,
|
|
inline add, smart-list section headers), detail, and create/edit screens, all
|
|
wired to the M1 ViewModels.
|
|
- M3 detail/edit polish: a "Progress" slider (percent-complete, 5% detents,
|
|
written to `Tasks.PERCENT_COMPLETE`) and conflict-safe saves — `updateTask`
|
|
re-checks the provider's `last_modified` against the value captured when the
|
|
form loaded and surfaces an overwrite-or-cancel prompt instead of clobbering an
|
|
external change (e.g. a DAVx5 sync).
|
|
- M4 subtasks (UI): reparent — a full-width, searchable "Parent task" sheet on
|
|
the edit form, with candidates grouped by due-date section, files a task under
|
|
any active top-level task in its list (or "None" to promote it); switching list
|
|
clears the now-invalid parent. Tapping a subtask in the detail screen opens its
|
|
own detail, which shows a "Part of …" parent card. On the task list a parent has
|
|
a dedicated expand button that reveals its children as a nested grouped run,
|
|
ending with an inline "add a subtask" row (an opt-out toggle is planned for the
|
|
M6 settings screen).
|
|
- Priority is coloured by level (green / amber / red pastels) on the list, detail,
|
|
and edit screens.
|
|
|
|
### Fixed
|
|
- Overview open-counts now count top-level tasks only, so subtasks — and
|
|
especially open subtasks under a completed parent — no longer inflate a list's
|
|
"N open" or the smart-list counts.
|
|
- Swipe-to-delete now reveals its red background + icon as you drag (tracking the
|
|
live direction, not just the settled target), and a floating "Deleted · Undo"
|
|
chip defers the actual delete so it can be restored.
|
|
|
|
## [0.1.0] - 2026-06-18
|
|
|
|
### Added
|
|
- M1 data layer + logic ("backoffice"): the full non-visual stack over the
|
|
OpenTasks `TaskContract` provider (authority resolved at runtime —
|
|
`org.tasks.opentasks` for tasks.org, `org.dmfs.tasks` for OpenTasks).
|
|
- Vendored `TaskContract` subset, `ProviderResolver`, `ColumnReader`, mappers,
|
|
`AndroidTasksDataSource` (Instances query + ContentObserver), and
|
|
`TasksRepository` exposing live Flows of lists/tasks/detail.
|
|
- Domain models, smart-list filtering (Today/Upcoming/Overdue/No-date/All/
|
|
Completed), sorting, form validation, sub-tasks via `parent_id`.
|
|
- Self-scheduled due-reminder engine (AlarmManager + boot/provider-change
|
|
re-sync), notifications, DataStore prefs.
|
|
- Render-only ViewModels + UiState for every screen (lists, task list, detail,
|
|
edit, settings, permission) so the UI is build-only.
|
|
- 24 JVM unit tests (mappers, filtering, sorting, form, value mapping, day
|
|
windows). `RootScreen` is a functional scaffold over the real data, to be
|
|
replaced screen-by-screen with the Material 3 Expressive design.
|
|
- M0 skeleton: project scaffolding copied from Calendula (Gradle, version
|
|
catalog, Hilt, Material 3 Expressive theme, Gitea CI/release workflows),
|
|
reseeded to a warm-mauve palette. Builds and shows a themed placeholder.
|