feat(ics): import UI — open/receive .ics, 1-vs-many routing
Completes v2.7 Branch 2. Wires the import core into the app: - Manifest ACTION_VIEW/SEND for text/calendar; MainActivity parses the incoming Uri (content/file only, so calendula:// deep-links don't match) and routes it through RootScreen → CalendarHost like the other one-shot intents. - ImportViewModel reads + parses the file and routes by count: one event → the prefilled create form for review (EventEditViewModel.openImported, which freezes the reminder default so the file's reminders win); many → ImportScreen with a writable-calendar picker, then a bulk import (UID dedup) and a result summary. - ImportScreen also surfaces parser warnings (skipped recurrence overrides, ignored attendees, unknown-timezone fallback). Strings EN+DE. Package is ui.imports (not ui.import — Java keyword). lint + test + assembleDebug green. No v2.7 tag until on-device review. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
10
CHANGELOG.md
10
CHANGELOG.md
@@ -13,10 +13,12 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
||||
- Back up your local (device-only) calendars: Settings → Calendars → Export as
|
||||
`.ics` file writes every event of your on-device calendars to a file you
|
||||
choose. Local calendars aren't synced anywhere, so this is their only backup.
|
||||
(Importing `.ics` files back in lands in the next update.)
|
||||
|
||||
_Note: new events now carry a unique identifier so a future `.ics` import can
|
||||
recognise them and avoid duplicates._
|
||||
- Open or share an `.ics` file into Calendula: a single event opens the create
|
||||
form prefilled for review, while a file with many events (e.g. a backup) opens
|
||||
a bulk import — pick a calendar and import them all. Re-importing a backup
|
||||
won't create duplicates (events are matched by their unique identifier), and
|
||||
anything Calendula can't represent (changed recurring occurrences, guest
|
||||
lists) is reported rather than silently dropped.
|
||||
|
||||
## [2.6.0] — 2026-06-18
|
||||
|
||||
|
||||
Reference in New Issue
Block a user