Commit Graph
168 Commits
Author SHA1 Message Date
makiolaj 49bd4e5707 Write existing overrides directly, match occurrences to the second (#135)
Also round legacy millisecond series once per provider instead of on every
instance write, read the instances cursor once, and fall back when a view lacks
original_instance_id.
2026-11-06 16:24:26 +01:00
makiolaj 650462143f Map provider overrides to their series, share the id-chunked query (#135) 2026-11-06 14:17:50 +01:00
makiolaj 9a5102bdf9 Round series stored with milliseconds before writing an occurrence (#135)
Also only fetch rows that recur, and skip the provider test without permission.
2026-11-06 13:47:21 +01:00
makiolaj dd9f652f02 Keep provider dates to whole seconds, test recurrence against a real provider (#135)
A DTSTART with milliseconds never matches the provider's first occurrence, so
completing it left the series in place.
2026-11-06 13:02:42 +01:00
makiolaj 9d8a6aecf4 Read the series rule from the tasks table for provider tasks (#135)
The instances view masks rrule/rdate with NULL, so on tasks.org's provider
(no is_recurring column) every series read as a one-off, and on every
provider the editor opened without its rule.
2026-11-06 12:56:48 +01:00
Jean-Luc Makiolaandmakiolaj 7bcac70cec Release 1.3.0 (#134)
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 8s
Renovate / renovate (push) Successful in 1m7s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Successful in 18m49s
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Successful in 1m34s
Beta — Codeberg pre-release / detect (push) Successful in 4s
Beta — Codeberg pre-release / beta (push) Skipped
Stable 1.3.0, after 1.3.0-beta.1 and beta.2.

- Version bumped to 1.3.0 (1030099); the CHANGELOG entries moved from Unreleased to 1.3.0.
- What's New for every shipped locale, now including ru-RU, which also gets its full store listing. values-uk and values-zh-rCN came in empty from Weblate, so they get no store locale yet.
- fr, ar, cs and ru added to locales_config.xml, so they show up in the in-app language picker and Android's per-app language settings. Before, only en, de and pt-BR did.
- `main` (Weblate #87) merged in, no conflicts and no stale keys.
- Lint has failed on this branch since #113: `NavController.currentBackStack` is a RestrictedApi. It's suppressed at that one call, since no public API exposes the whole back stack and `visibleEntries` drops an entry once another one covers it.

#119, #121, #122/#123 and #127/#129 landed after beta.2, so no tester has seen them yet.

Closes #68, closes #73, closes #90, closes #91, closes #93, closes #94, closes #99, closes #104, closes #105, closes #119, closes #121, closes #122, closes #123, closes #127, closes #129

Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de>
Reviewed-on: https://codeberg.org/jlmakiola/agendula/pulls/134
v1.3.0
2026-11-02 21:26:15 +01:00
Jean-Luc Makiola 023c0e0157 Translations update from Weblate (#87)
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 7s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Skipped
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Skipped
Renovate / renovate (push) Successful in 2m6s
Reviewed-on: https://codeberg.org/jlmakiola/agendula/pulls/87
2026-11-02 20:59:39 +01:00
Robin Schanbacher efcd641ea8 Translated using Weblate (German)
Currently translated at 58.4% (395 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/de/
2026-11-02 07:20:26 +00:00
Knee8811 7d072d0bf7 Translated using Weblate (Czech)
Currently translated at 37.2% (252 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-31 18:19:39 +00:00
Knee8811 bda1a60959 Translated using Weblate (Czech)
Currently translated at 35.9% (243 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-31 12:55:37 +00:00
Knee8811 2d7b6309c0 Translated using Weblate (Czech)
Currently translated at 30.1% (204 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-31 10:56:21 +00:00
Knee8811 78b1cfbaed Translated using Weblate (Czech)
Currently translated at 29.5% (200 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-30 22:25:52 +00:00
Knee8811 2887176e88 Translated using Weblate (Czech)
Currently translated at 25.5% (173 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-30 19:58:38 +00:00
Knee8811 44da66bb85 Translated using Weblate (Czech)
Currently translated at 22.0% (149 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-30 17:57:18 +00:00
Weblate c194984a8b Translated using Weblate (Arabic)
Currently translated at 82.5% (558 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-30 06:45:08 +00:00
Sup99999 8f06f24112 Translated using Weblate (Arabic)
Currently translated at 82.5% (558 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-30 06:45:08 +00:00
sinpyt fb678d008b Added translation using Weblate (Ukrainian) 2026-10-29 19:11:12 +00:00
Ervin 0770158b02 Translated using Weblate (Russian)
Currently translated at 5.0% (34 of 676 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ru/
2026-10-28 09:46:12 +00:00
Weblate d64a770164 Update translation files
Updated by "Cleanup translation files" add-on in Weblate.

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/
2026-10-27 16:21:45 +00:00
Ervin ff0cc28465 Added translation using Weblate (Russian) 2026-10-27 16:21:44 +00:00
Sup99999 6a1733d97b Translated using Weblate (Arabic)
Currently translated at 82.2% (538 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-27 16:21:44 +00:00
Sup99999 7a94ee6786 Translated using Weblate (Arabic)
Currently translated at 80.8% (529 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-27 16:21:44 +00:00
CavenSteave 7b5bf86cfa Added translation using Weblate (Chinese (Simplified Han script)) 2026-10-27 16:21:44 +00:00
Weblate ddff57e8fe Translated using Weblate (Arabic)
Currently translated at 76.2% (499 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-27 16:21:44 +00:00
Sup99999 150e5c5f2c Translated using Weblate (Arabic)
Currently translated at 76.2% (499 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-27 16:21:44 +00:00
Knee8811 75ad41c41e Translated using Weblate (Czech)
Currently translated at 20.9% (137 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-27 16:21:44 +00:00
Jean-Luc Makiolaandmakiolaj 08c297f30a Release 1.2.0 (#103)
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 8s
Renovate / renovate (push) Successful in 1m11s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Successful in 18m4s
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Failing after 1m33s
Beta — Codeberg pre-release / detect (push) Successful in 5s
Beta — Codeberg pre-release / beta (push) Skipped
Stable 1.2.0, after 1.2.0-beta.1 and beta.2.

- Version bumped to 1.2.0 (1020099); the CHANGELOG entries moved from Unreleased to 1.2.0.
- What's New for every shipped locale, now including cs-CZ.
- Full store listing (title, short and full description) for every locale; new for cs-CZ, ar and fr-FR. Play only gets these through the `listing` lane.
- `main` is merged in with the branch side kept. #81 and the Weblate updates already came in through the #88 squash, and the only lines unique to `main` were string keys that #88 removed.

The #75 fix landed after beta.2, so no reporter has tested it yet.

Closes #72, closes #78, closes #75, closes #92

Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de>
Reviewed-on: https://codeberg.org/jlmakiola/agendula/pulls/103
v1.2.0
2026-10-26 20:41:58 +01:00
Jean-Luc Makiolaandmakiolaj 1d6c2a0d59 fix: sync task reminders as VALARMs (#52) (#81)
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 7s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Skipped
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Skipped
Renovate / renovate (push) Successful in 1m1s
Reminders set in Agendula never reached the server, so a Mac or any other client saw none, and alarms set there never rang here. Reminders now sync as VALARMs in both directions.

**What syncs**
- Alarms Agendula can fire exactly as written become reminders: DISPLAY/AUDIO, relative to start or due, or absolute on a non-recurring task.
- Everything else stays in the residue and round-trips untouched: Apple default alarms, location alarms, repeating alarms, RFC 9074 snoozes, and triggers after their anchor.
- An unchanged alarm is re-emitted verbatim. An edited one is authored fresh under its existing uid. All-day leads go out as whole days.
- `ACKNOWLEDGED` is only added once a reminder is past the planner's missed-reminder grace period.

**Behaviour changes**
- Default reminders are stored on the task when it first gets a due date, so other clients see them. While untouched, they swap with the other default when the task flips between timed and all-day.
- Removing a task's alarms in another app turns them off here instead of falling back to the default. Tasks from clients that never write alarms keep the default.
- "All occurrences" reminder edits now reach occurrences that still had the series' old reminders.
- `.ics` import keeps VALARMs as reminders.

**Database v3**
- Alarms gain a `uid` and `raw` VALARM. Tasks gain `reminders_off`.
- The migration lifts claimable alarms out of the residue. It queues a one-time upload for tasks with local-only reminders on writable, non-confidential lists.

**Testing**
- Unit tests: full 662, offline 489. All instrumented tests pass on the emulator, including the migration. Lint is clean for both flavours.
- Not covered: the repository has no unit-test harness, so storing defaults at creation and the timed/all-day swap have no automated tests. Nothing has been checked against a real Mac yet.

Closes #52

Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de>
Reviewed-on: https://codeberg.org/jlmakiola/agendula/pulls/81
2026-10-19 20:09:55 +02:00
Jean-Luc Makiola 2a1230c0ca Translations update from Weblate (#67)
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 8s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Skipped
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Skipped
Renovate / renovate (push) Successful in 1m14s
Reviewed-on: https://codeberg.org/jlmakiola/agendula/pulls/67
2026-10-19 17:14:47 +02:00
Knee8811 cd3b33c959 Translated using Weblate (Czech)
Currently translated at 18.5% (121 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-19 01:54:42 +00:00
Knee8811 8175d58dcd Translated using Weblate (Czech)
Currently translated at 12.9% (85 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-18 18:45:06 +00:00
Knee8811 05696b2991 Translated using Weblate (Czech)
Currently translated at 12.0% (79 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-17 06:45:09 +00:00
Weblate 23f6156e71 Translated using Weblate (Arabic)
Currently translated at 74.3% (486 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-17 06:45:08 +00:00
Sup99999 c1b65c0c86 Translated using Weblate (Arabic)
Currently translated at 74.3% (486 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-17 06:45:08 +00:00
Weblate b5ac279b94 Update translation files
Updated by "Remove blank strings" add-on in Weblate.

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/
2026-10-15 21:45:14 +00:00
Knee8811 8fba3f01a4 Translated using Weblate (Czech)
Currently translated at 9.3% (61 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-15 21:45:14 +00:00
Weblate 3b73dd4c53 Translated using Weblate (Czech)
Currently translated at 9.3% (61 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/cs/
2026-10-15 21:45:14 +00:00
Sup99999 01850a7b74 Translated using Weblate (Arabic)
Currently translated at 52.1% (341 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-15 21:45:14 +00:00
Weblate 28e646fb31 Translated using Weblate (German)
Currently translated at 59.6% (390 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/de/
2026-10-15 21:45:14 +00:00
Sonja Kraus 6e3cc4bdbd Translated using Weblate (German)
Currently translated at 59.6% (390 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/de/
2026-10-15 21:45:14 +00:00
Jean-Luc Makiola b6185ed53c Translations update from Weblate (#53)
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 7s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Skipped
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Skipped
Renovate / renovate (push) Successful in 1m6s
Reviewed-on: https://codeberg.org/jlmakiola/agendula/pulls/53
2026-10-15 13:26:10 +02:00
Jean-Luc Makiola 35110c96ce docs: Google Play is live (#61)
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 11s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Skipped
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Skipped
Renovate / renovate (push) Successful in 2m6s
Beta — Codeberg pre-release / detect (push) Successful in 4s
Beta — Codeberg pre-release / beta (push) Skipped
2026-10-15 13:00:26 +02:00
Knee8811 9338c64dc7 Added translation using Weblate (Czech) 2026-10-14 21:41:45 +00:00
Weblate 9a72fb0880 Translated using Weblate (Arabic)
Currently translated at 51.8% (339 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-14 21:41:45 +00:00
Sup99999 24e978efc3 Translated using Weblate (Arabic)
Currently translated at 51.8% (339 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-14 21:41:45 +00:00
Robin Schanbacher 2740dd5562 Translated using Weblate (German)
Currently translated at 58.5% (383 of 654 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/de/
2026-10-14 21:41:45 +00:00
Sup99999 8dbfd07d10 Translated using Weblate (Arabic)
Currently translated at 46.0% (265 of 575 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-14 21:41:45 +00:00
Weblate 3e1a84ab7d Translated using Weblate (Arabic)
Currently translated at 46.0% (265 of 575 strings)

Translation: Agendula/agendula
Translate-URL: https://weblate.dev.jeanlucmakiola.de/projects/agendula/agendula/ar/
2026-10-14 21:41:45 +00:00
Jean-Luc Makiola dcc55a158e docs: F-Droid install, Play note, Weblate widget (#60)
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 7s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Skipped
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Skipped
Renovate / renovate (push) Successful in 1m47s
2026-10-14 17:41:10 +02:00
Jean-Luc Makiolaandmakiolaj dd08c035df Release 1.1.0 (#51)
Renovate / renovate (push) Successful in 54s
Release — F-Droid repo + Gitea/Codeberg release + Play / detect (push) Successful in 6s
Release — F-Droid repo + Gitea/Codeberg release + Play / release (push) Successful in 21m44s
Release — F-Droid repo + Gitea/Codeberg release + Play / play (push) Successful in 1m32s
Agendula 1.1.0. Merging this triggers the release pipeline (F-Droid, Codeberg, Play) and mints the v1.1.0 tag.

- Tags, synced as CATEGORIES (#35)
- Saved filters, also usable in the Tasks widget (#47)
- Offline flavor without sync or network, published to Codeberg only (#39)
- New Today, Up next, Lists and Week widgets; widgets can show several lists
- Synced lists can be renamed and deleted
- All-day tasks no longer land a day off west of UTC in smart lists and filters

versionName 1.1.0 / versionCode 1010099. CHANGELOG has the 1.1.0 section, and What's New is written for en-US, en-GB, de-DE, pt-BR, plus new fr-FR and ar.

After the tag lands, fdroiddata!49998 needs a 1.1.0 build entry with gradle: full.

Closes #35, closes #39, closes #47

Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de>
Reviewed-on: https://codeberg.org/jlmakiola/agendula/pulls/51
v1.1.0
2026-10-10 15:06:07 +02:00