diff --git a/.planning/ROADMAP.md b/.planning/ROADMAP.md index 8bd1e85..f6f8b79 100644 --- a/.planning/ROADMAP.md +++ b/.planning/ROADMAP.md @@ -62,7 +62,7 @@ guide here, not a contract — scope per slice is decided as we go. | Version | Milestone | Status | |---|---|---| | v1.1 | Write foundation — `WRITE_CALENDAR`, read-only-calendar detection, delete (series + single occurrence) | complete (shipped 2026-06-11) | -| v1.2 | Create event — form, FAB, default-calendar pref | planned | +| v1.2 | Create event — form, FAB, last-used-calendar preselect | complete (shipped 2026-06-11) | | v1.3 | Edit event — shared form, series edit, reminders, simple recurrence picker | planned | | v2.0 | Quick-add, occurrence edit, conflict dialog, polish, release | planned | diff --git a/.planning/STATE.md b/.planning/STATE.md index 4888d16..612d220 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -5,9 +5,10 @@ ## Status **Milestone:** v2.0 — Write support (milestone 2, in progress) -**Phase:** v1.1.0 shipped 2026-06-11 (write foundation + delete). Milestone 2 -runs in four slices (`docs/superpowers/plans/2026-06-11-03-write-support.md`); -next up is v1.2 (create event). +**Phase:** v1.2.0 shipped 2026-06-11 (create event), after v1.1.0 the same +day (write foundation + delete). Milestone 2 runs in four slices +(`docs/superpowers/plans/2026-06-11-03-write-support.md`); next up is v1.3 +(edit event). ## Progress @@ -35,7 +36,15 @@ next up is v1.2 (create event). "only this event" via cancelled exception / "all events in the series"), repository + mapper tests +- [x] v1.2 create event — full-screen `EventEditScreen` (title, all-day, + M3 date/time pickers with duration-preserving start moves, writable-only + calendar picker preselecting the last-used calendar, location, description), + "+" FAB on all three views prefilled with the visible day, `insertEvent` + with provider-correct all-day normalisation (UTC midnights, exclusive end), + domain/mapper/repository tests + ## Next -1. v1.2 — create event: form screen, FAB, default-calendar pref, `insertEvent` -2. Monitor the F-Droid build/publish for v1.1.0 +1. v1.3 — edit event: reuse the form, series edit, reminder edit, simple + recurrence picker +2. Monitor the F-Droid build/publish for v1.1.0 / v1.2.0 diff --git a/CHANGELOG.md b/CHANGELOG.md index 57f9f19..a7e6b3c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,28 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.2.0] — 2026-06-11 + +### Added +- Create events (milestone 2, slice 2): + - A "+" FAB on the month, week, and day views opens a new full-screen event + form, prefilled with the visible day (today at the next full hour, or + 09:00 on other days) + - The form covers title, all-day toggle, start/end with Material 3 date and + time pickers (moving the start drags the end along, preserving duration), + target calendar, location, and description + - The calendar picker offers only writable calendars and preselects the one + you last created an event in + - Validation on save ("ends before it starts", no writable calendar), with + the same contextual write-permission upgrade as delete + - All-day events are stored provider-correctly (UTC midnights, exclusive + end), timed events in the device time zone + +### Changed +- The jump-to-today pill now stacks above the new "+" FAB instead of being + the only floating action +- `versionName`/`versionCode` bumped to 1.2.0 / 9 + ## [1.1.0] — 2026-06-11 ### Added diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 0521a03..7d26eb6 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -23,8 +23,8 @@ android { applicationId = "de.jeanlucmakiola.calendula" minSdk = 29 targetSdk = 36 - versionCode = 8 - versionName = "1.1.0" + versionCode = 9 + versionName = "1.2.0" testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner" }