New setting under Settings → Views → Events: "Tapping an event opens" Details (default) or Edit form. The long-press toggle moves into the same group. - Taps in the views and in search open the editor directly for events in writable calendars. Read-only events, reminder notifications and widgets always open the details. - Installs without write access are asked for it on the tap; refusing opens the details instead. - The editor gets a back guard: with unsaved changes it asks to save, discard or keep editing; otherwise it closes silently. - The editor gets Duplicate, Share and Delete in an overflow menu, so skipping the details doesn't lose them. - If the event can't be loaded, the details screen opens and shows why. - Each editor overlay (create, edit, duplicate/import) now has its own ViewModel. Duplicating from an edited form previously reused the edit form's state. - Deletes from the details screen, the editor and the selection bar share one error mapping. Deleting an event that's already gone counts as deleted in the details screen and the editor. Deviation from the issue: it asked for back to save automatically. Following the discussion in the comments, auto-save isn't in this PR. Back asks only when something actually changed, and Details stays the default. Closes #178 Co-authored-by: Jean-Luc Makiola <business@jeanlucmakiola.de> Reviewed-on: https://codeberg.org/jlmakiola/calendula/pulls/394
Documentation map
Where to look for what:
| Document | What it is |
|---|---|
../CONTRIBUTING.md |
How to contribute: issue-first workflow, which branch to target, translations, the rules a change is reviewed against |
BUILDING.md |
Building from source: submodule, JDK/SDK requirements, Gradle tasks, what CI runs |
ARCHITECTURE.md |
Orientation tour: principles, layers, navigation, recurring-write / conflict / reminder pipelines, testing |
RELEASING.md |
Release process: versioning, the merge-driven pipeline, the two-forge split, secrets, key custody |
../CHANGELOG.md |
Release history (Keep a Changelog, SemVer) |
| Issues + milestones | The roadmap: what's planned, in progress and shipped. A milestone maps to its release/vX.Y.Z branch |
../.planning/PROJECT.md |
What the project is: core value, stack + version pins, constraints, naming, forge/release infrastructure |
design/ |
Per-feature design notes kept for features whose provider behaviour is worth recording |
../fastlane/metadata/android/ |
Store metadata (single source of truth) for every app language, mapped in store-locales.txt: descriptions, title, graphics. Harvested directly by the official F-Droid repo, pushed to Google Play with every release, validated by ../scripts/check_store_listing.py; transformed into the self-hosted repo layout at release time by ../scripts/fastlane_to_fdroid_localized.sh |
../fdroid-metadata/ |
App-level F-Droid control file (*.yml: Categories, License, links) for the self-hosted repo's fdroid update |
fdroid-official/ |
Recipe and notes for publishing to the official F-Droid repo (reproducible build + developer-signed binary) |
Planning lives in the issue tracker and its milestones, not in this repository.
.planning/PROJECT.md describes the project itself.
ARCHITECTURE.md is updated with the code and is the place to record a lesson
learned about the calendar provider.