-
Notifications
You must be signed in to change notification settings - Fork 3
More processors #79
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
More processors #79
Conversation
# Conflicts: # lib/src/main/kotlin/at/bitfire/synctools/mapping/calendar/LegacyAndroidEventProcessor.kt # lib/src/main/kotlin/at/bitfire/synctools/mapping/calendar/processor/AndroidEventFieldProcessor.kt
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR implements calendar event processors as part of migrating from legacy event processing to a more modular processor-based architecture. The PR adds individual processor classes for different event fields and removes the corresponding logic from the legacy processor.
- Refactors event field processing from monolithic legacy code to individual specialized processors
- Adds comprehensive test coverage for the new processor classes
- Updates the LegacyAndroidEventProcessor to use the new processors and removes duplicate legacy code
Reviewed Changes
Copilot reviewed 29 out of 29 changed files in this pull request and generated 3 comments.
Show a summary per file
| File | Description |
|---|---|
| AccessLevelProcessor.kt | Handles event classification and access level mapping with retained classification support |
| AvailabilityProcessor.kt | Processes event availability (opaque/transparent) from Android calendar data |
| CategoriesProcessor.kt | Extracts and processes event categories from extended properties |
| ColorProcessor.kt | Maps event colors from both color keys and RGB values |
| DescriptionProcessor.kt | Processes event description with null/blank handling |
| LocationProcessor.kt | Processes event location with trimming |
| MutatorsProcessor.kt | Handles event mutators for PRODID generation |
| OrganizerProcessor.kt | Processes organizer information for group-scheduled events |
| SequenceProcessor.kt | Handles event sequence numbers |
| StatusProcessor.kt | Maps Android event status to iCal status values |
| TitleProcessor.kt | Processes event titles with trimming |
| UnknownPropertiesProcessor.kt | Handles unknown/custom properties with exclusion logic |
| UrlProcessor.kt | Processes event URLs with validation |
| AndroidEventFieldProcessor.kt | Adds documentation comment to interface |
| LegacyAndroidEventProcessor.kt | Updates to use new processors and removes legacy processing code |
| *Test.kt files | Comprehensive unit tests for all new processor classes |
Tip: Customize your code reviews with copilot-instructions.md. Create the file or learn how to get started.
...rc/main/kotlin/at/bitfire/synctools/mapping/calendar/processor/UnknownPropertiesProcessor.kt
Outdated
Show resolved
Hide resolved
lib/src/main/kotlin/at/bitfire/synctools/mapping/calendar/processor/OrganizerProcessor.kt
Show resolved
Hide resolved
lib/src/main/kotlin/at/bitfire/synctools/mapping/calendar/processor/ColorProcessor.kt
Show resolved
Hide resolved
sunkup
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looking good
Next-to-last bunch of event processors.
Still missing: time fields, recurring rules
@sunkup The next PR will then close #74 and finalize moving everything into processor classes.