This website requires JavaScript.
0b683d374f
feat(ics): export — share single event + back up local calendars as .ics
Jean-Luc Makiola
2026-06-18 14:27:53 +02:00
64d0a89b28
release: cut v2.6.0 — working in-app language picker + system per-app language
v2.6.0
Jean-Luc Makiola
2026-06-18 12:38:58 +02:00
7285e274df
Merge pull request 'feat(i18n): data-driven language picker + Weblate translation guard' (#5 ) from feat/translations into main
Jean-Luc Makiola
2026-06-18 08:41:46 +00:00
788ca3906e
Merge remote-tracking branch 'origin/main' into worktree-feat+translations
Jean-Luc Makiola
2026-06-18 10:29:00 +02:00
bab6fd175a
fix(i18n): make the language picker actually apply on device
Jean-Luc Makiola
2026-06-18 10:28:13 +02:00
3d5cc55ef1
Merge pull request 'feat(reminders): configurable all-day reminder fire time' (#6 ) from feat/default-reminders into main
Jean-Luc Makiola
2026-06-18 07:58:47 +00:00
111b3782b0
feat(reminders): configurable all-day reminder fire time
Jean-Luc Makiola
2026-06-18 09:54:41 +02:00
cf380b6eab
ci(i18n): translation parity guard + allow partial translations
Jean-Luc Makiola
2026-06-18 08:43:06 +02:00
9177a926df
feat(i18n): data-driven language picker + locale config
Jean-Luc Makiola
2026-06-17 23:31:54 +02:00
5e6defd4c7
release: cut v2.5.0 — home-screen widgets, agenda, jump-to-date, quick actions
v2.5.0
Jean-Luc Makiola
2026-06-17 15:33:58 +02:00
6e7ae3e60d
Merge pull request 'feat(agenda): Agenda view — upcoming events grouped by day' (#4 ) from feat/agenda-view into main
Jean-Luc Makiola
2026-06-17 07:45:04 +00:00
b0b30eef91
feat(agenda): add Agenda view — upcoming events grouped by day
Jean-Luc Makiola
2026-06-17 09:41:36 +02:00
8b25c9be39
Merge pull request 'feat(nav): jump-to-date action in the navigation drawer' (#3 ) from feat/jump-to-date into main
Jean-Luc Makiola
2026-06-17 07:25:46 +00:00
2943f3945d
feat(nav): jump-to-date action in the navigation drawer
Jean-Luc Makiola
2026-06-17 09:24:49 +02:00
b62f097392
release: cut v2.4.0 — per-event colors
v2.4.0
Jean-Luc Makiola
2026-06-17 08:55:16 +02:00
210ddff8d8
release: cut v2.3.0 — Material 3 grouped-list redesign of Settings, calendars & drawer
v2.3.0
Jean-Luc Makiola
2026-06-16 11:44:10 +02:00
e194da3766
release: cut v2.2.0 — tap-to-create + local calendar management
v2.2.0
Jean-Luc Makiola
2026-06-16 09:49:14 +02:00
15fb76005c
release: cut v2.1.0 — month event grid, drawer view tabs, text-cursor fix
v2.1.0
Jean-Luc Makiola
2026-06-15 22:30:20 +02:00
c27a645c19
feat(month): show real events with continuous multi-day bars
Jean-Luc Makiola
2026-06-15 22:29:38 +02:00
21e7b1ff91
feat(drawer): add View section to switch Month/Week/Day
Jean-Luc Makiola
2026-06-15 21:48:49 +02:00
31163da868
ci(release): P1 hardening — versioning, F-Droid changelogs, R8 mapping, docs
Jean-Luc Makiola
2026-06-15 21:47:50 +02:00
9a1903e6ed
fix(edit): stop cursor jumping in event text fields
Jean-Luc Makiola
2026-06-15 21:16:32 +02:00
f990af1cb0
ci(release): make workflow_dispatch a key-rotation / re-sign path
Jean-Luc Makiola
2026-06-15 21:13:43 +02:00
e5be5f1ae5
security(release): rotate compromised F-Droid repo key; keep key out of served tree
Jean-Luc Makiola
2026-06-14 12:01:00 +02:00
54aed73726
docs: F-Droid install guide with repo URL + fingerprint; backlog daily-driver ideas
Jean-Luc Makiola
2026-06-11 22:48:30 +02:00
82c3e1d605
docs: architecture tour, docs index, showcase README; ci: Gitea release per tag
Jean-Luc Makiola
2026-06-11 22:35:03 +02:00
e5b523e907
docs: backlog the Locations & People ideas (contact picker, OSM autocomplete)
Jean-Luc Makiola
2026-06-11 22:24:43 +02:00
d028b70e6e
release: cut v2.0.0 — write support complete
v2.0.0
Jean-Luc Makiola
2026-06-11 22:15:50 +02:00
626623bb6e
feat(edit): conflict dialog on save + store metadata refresh (v2.0)
Jean-Luc Makiola
2026-06-11 22:14:27 +02:00
264b2a86c1
release: cut v1.4.0 — reminder notifications
v1.4.0
Jean-Luc Makiola
2026-06-11 21:24:10 +02:00
b03bd67678
feat(reminders): reminder notifications — EVENT_REMINDER receiver, onboarding step, settings toggle (v1.4)
Jean-Luc Makiola
2026-06-11 21:23:34 +02:00
301f105fbc
release: cut v1.3.0 — event edit
v1.3.0
Jean-Luc Makiola
2026-06-11 20:57:44 +02:00
f0e2e12939
feat(edit): event editing — shared form, scoped recurring writes, recurrence picker (v1.3)
Jean-Luc Makiola
2026-06-11 20:57:32 +02:00
bdedf47972
release: cut v1.2.1 — event-form polish
v1.2.1
Jean-Luc Makiola
2026-06-11 15:41:11 +02:00
a69be3da43
feat(edit): form redesign, optional fields, OptionCard dialogs, expressive motion
Jean-Luc Makiola
2026-06-11 15:14:30 +02:00
779fa1d480
release: cut v1.2.0 — event creation
v1.2.0
Jean-Luc Makiola
2026-06-11 13:27:17 +02:00
c59a071b82
feat(write): event creation — form screen, FAB, last-used calendar (v1.2)
Jean-Luc Makiola
2026-06-11 13:27:08 +02:00
285bfd90a7
release: cut v1.1.0 — event delete (write foundation)
v1.1.0
Jean-Luc Makiola
2026-06-11 12:55:56 +02:00
9529f19c60
feat(write): event delete + WRITE_CALENDAR foundation (v1.1)
Jean-Luc Makiola
2026-06-11 12:55:15 +02:00
0013c9f3b1
ci: cut redundant per-run work (cache fix companion, emulator skip, daemon reuse)
Jean-Luc Makiola
2026-06-11 09:50:01 +02:00
bd6ad4ae5f
Merge pull request 'feat: full event read (v0.6.0) + onboarding redesign, cut v1.0.0' (#2 ) from feat/full-event-read-v0.6.0 into main
makiolaj
2026-06-11 07:28:16 +00:00
3697a58e5b
release: cut v1.0.0 — first public release
v1.0.0
Jean-Luc Makiola
2026-06-11 09:24:47 +02:00
e290c92d78
docs: fold onboarding redesign into 0.6.0 changelog
v0.6.0
Jean-Luc Makiola
2026-06-11 09:23:42 +02:00
9c4ebbc65a
feat(permission): redesign first-run grant-access screen (M3 Expressive)
Jean-Luc Makiola
2026-06-11 09:17:54 +02:00
c0d413ba11
docs: backlog the initial grant-access screen redesign (pre-1.0 polish)
Jean-Luc Makiola
2026-06-11 09:08:21 +02:00
dca0245a42
refactor(detail): show availability only when Free, pin it by the title
Jean-Luc Makiola
2026-06-11 09:08:21 +02:00
024512959f
feat(detail): full event read — surface every readable field (v0.6.0)
Jean-Luc Makiola
2026-06-11 08:56:40 +02:00
e78da3d7c1
docs: add v0.6 "full event read" milestone before v1.0
Jean-Luc Makiola
2026-06-10 23:35:02 +02:00
2cb8b59fb7
docs: cut jump-to-date (M2) from V1 scope
Jean-Luc Makiola
2026-06-10 23:27:21 +02:00
7d36d22fd5
Merge pull request 'feat: calendar filter in drawer + settings (v0.5.0)' (#1 ) from feat/filter-settings-v0.5.0 into main
v0.5.0
makiolaj
2026-06-10 20:57:57 +00:00
adcbed6e02
feat(filter,settings): calendar filter in drawer + settings (v0.5.0)
Jean-Luc Makiola
2026-06-10 22:55:33 +02:00
efa0abbaed
feat(detail): full-screen event detail (S4) with humanized recurrence
v0.4.0
Jean-Luc Makiola
2026-06-10 21:52:35 +02:00
d3fbe28843
docs: record v0.3.0 (month/week/day views, view switcher) in CHANGELOG
v0.3.0
Jean-Luc Makiola
2026-06-10 20:44:22 +02:00
951fb640a6
feat(day): single-column day view, wire into view switcher
Jean-Luc Makiola
2026-06-10 20:40:02 +02:00
94fa206e2e
refactor(week): polish timeline — rounded viewport, scroll persistence, week badge
Jean-Luc Makiola
2026-06-10 20:04:08 +02:00
6a90bade8a
feat(ui): month card grid + week timeline, wire view switcher
Jean-Luc Makiola
2026-06-10 19:07:24 +02:00
0132201cf9
style(icon): regenerate F-Droid icon.png to match launcher exactly
v0.2.1
Jean-Luc Makiola
2026-06-09 10:38:08 +02:00
b792ddc2f0
style: fix launcher icon scaling and centering, update AGP
Jean-Luc Makiola
2026-06-08 20:30:40 +02:00
440fa57161
fix(debug): use prefixed composite keys in LazyColumn
Jean-Luc Makiola
2026-06-08 20:19:58 +02:00
00b5aeaac7
feat(icon): line-art cal + calendula bloom + numeral "1"
Jean-Luc Makiola
2026-06-08 18:24:04 +02:00
2a2b919041
docs: record v0.2.0 data-layer + permission flow in CHANGELOG, planning
v0.2.0
Jean-Luc Makiola
2026-06-08 17:58:02 +02:00
3ced240e23
test: instrumented repository smoke against real CalendarContract
Jean-Luc Makiola
2026-06-08 17:57:12 +02:00
035ac9b003
test: replace placeholder smoke with permission-rationale assert
Jean-Luc Makiola
2026-06-08 17:56:03 +02:00
c03389abe0
ui: replace placeholder with RootScreen routing permission ↔ debug
Jean-Luc Makiola
2026-06-08 17:55:34 +02:00
98f8433156
ui: add DebugScreen showing calendars + next 50 instances
Jean-Luc Makiola
2026-06-08 17:54:23 +02:00
8fbbab30e2
ui: add DebugViewModel combining calendars + next 30d instances
Jean-Luc Makiola
2026-06-08 17:52:50 +02:00
ef0a4b0568
ui: add PermissionScreen with rationale and denied recovery
Jean-Luc Makiola
2026-06-08 17:50:33 +02:00
43f12812b6
ui: add PermissionViewModel with three-state machine
Jean-Luc Makiola
2026-06-08 17:49:39 +02:00
2400d5482c
i18n: add permission + debug screen strings (en, de)
Jean-Luc Makiola
2026-06-08 17:49:06 +02:00
4d54501ed4
di: wire CalendarRepository, DataSource, DataStore, IoDispatcher
Jean-Luc Makiola
2026-06-08 17:48:34 +02:00
748df761bf
data: add CalendarPrefs (hidden calendar ids in DataStore)
Jean-Luc Makiola
2026-06-08 17:47:55 +02:00
d13f2f07a5
data: add CalendarRepository + Impl with SharedFlow re-emit on data-source ticks
Jean-Luc Makiola
2026-06-08 17:47:13 +02:00
7abb2e6ab4
data: add CalendarDataSource seam returning domain lists (not Cursors)
Jean-Luc Makiola
2026-06-08 17:44:19 +02:00
fb003d8806
data: add ColumnReader.toEventDetailCore() and toAttendee() mappers
Jean-Luc Makiola
2026-06-08 17:42:42 +02:00
40b531fa52
data: add ColumnReader.toEventInstance() with defensive validation (§8)
Jean-Luc Makiola
2026-06-08 17:41:29 +02:00
0e4c47febe
data: add ColumnReader abstraction + Cursor.toCalendarSource mapper
Jean-Luc Makiola
2026-06-08 17:40:37 +02:00
fb723fba68
data: add CalendarContract column projections + indices
v0.1.1
Jean-Luc Makiola
2026-06-08 17:37:23 +02:00
ffc7ed414f
fix(fdroid): correct metadata format to fastlane convention + add icon.png
Jean-Luc Makiola
2026-06-08 17:37:05 +02:00
af75965a31
domain: add pure-Kotlin models (CalendarSource, EventInstance, EventDetail, …)
Jean-Luc Makiola
2026-06-08 17:36:39 +02:00
1b456d2133
data: add TimeBridge helpers for epoch-millis ↔ kotlin.time.Instant
Jean-Luc Makiola
2026-06-08 17:35:49 +02:00
a826e82bdc
build: add kotlinx-datetime, coroutines, turbine, hilt-nav-compose, lifecycle-compose
Jean-Luc Makiola
2026-06-08 17:32:45 +02:00
ed680b4482
docs: add Plan 02 - Data Layer & Permission Flow implementation plan
Jean-Luc Makiola
2026-06-08 17:30:41 +02:00
6ebe8d69e9
ci(cleanup): trim lint+test scope for faster pipelines
v0.1.0
Jean-Luc Makiola
2026-06-08 17:03:08 +02:00
0508ea9de5
fix(ci): split release.yaml sanity gradle calls to avoid OOM
Jean-Luc Makiola
2026-06-08 16:53:30 +02:00
ee14706d91
fix(build): revert ui-tooling-preview to implementation scope
Jean-Luc Makiola
2026-06-08 16:06:49 +02:00
376663b0d8
chore: batch fix final-review findings on Plan 01
Jean-Luc Makiola
2026-06-08 16:04:23 +02:00
89ff33fe3d
docs: record v0.1.0 foundation in CHANGELOG, update STATE
Jean-Luc Makiola
2026-06-08 15:55:20 +02:00
686aee9109
build: wire signing config from key.properties when present
Jean-Luc Makiola
2026-06-08 15:52:40 +02:00
bfa7757d88
ci: add gitea release workflow with F-Droid pipeline
Jean-Luc Makiola
2026-06-08 15:49:01 +02:00
fb7f2ad1f3
ci: add gitea CI workflow (lint, test, assemble, trivy)
Jean-Luc Makiola
2026-06-08 15:46:57 +02:00
0593b9c60f
test: add UI smoke test for MainActivity placeholder
Jean-Luc Makiola
2026-06-08 15:45:17 +02:00
dea5490bcf
feat: scaffold CalendulaApp + MainActivity with themed placeholder
Jean-Luc Makiola
2026-06-08 15:43:17 +02:00
4fe8cd12cb
feat: M3 Expressive theme with dynamic color + fallback scheme from slate seed
Jean-Luc Makiola
2026-06-08 15:39:28 +02:00
e4f445ac75
fix(build): bump compileSdk 36 -> 37 for Material 3 Expressive alpha
Jean-Luc Makiola
2026-06-08 15:34:36 +02:00
2cf2dafacd
fix(deps): correct Compose BOM to 2026.05.01
Jean-Luc Makiola
2026-06-08 15:31:52 +02:00
defc7795ad
feat: adaptive launcher icon - '1' on slate squircle (kalendae)
Jean-Luc Makiola
2026-06-08 15:28:27 +02:00
b20da4d4c6
feat: add android manifest, strings (DE+EN), colors, base theme
Jean-Luc Makiola
2026-06-08 15:23:52 +02:00
8312bc6e0c
chore(gradle): fix code-review findings on app module setup
Jean-Luc Makiola
2026-06-08 15:22:07 +02:00
5e2cee1147
chore(gradle): drop orphaned kotlin-android plugin references
Jean-Luc Makiola
2026-06-08 15:18:47 +02:00
a9c141f146
chore: configure :app module gradle build
Jean-Luc Makiola
2026-06-08 15:16:36 +02:00