3.1 KiB
3.1 KiB
Codex Report
Summary
- Implemented Apple Calendar–style month + list sync with vertical month paging, unified German locale + Monday-first calendar config, and improved year view behavior.
- Fixed multiple build warnings/errors related to Swift 6 actor isolation and AVAsset deprecation.
- Added dynamic year title that updates based on which year occupies most of the year view.
Key Behavior Changes
- Month view: vertical paging, large top-left month header (Month + Year), list syncs with calendar selection.
- Year view: top-left large year title follows scroll position; scrolls to selected year on entry.
- “Heute” button added to jump to today.
- Calendar list now scrolls across all entries (not just current month) to enable list-mode feel.
Major File Changes
videorem/ContentView.swift- Reworked month view to vertical paging
ScrollViewwith.scrollTargetBehavior(.paging)andscrollPosition. - Added
monthScrollID,yearTitletracking,YearCenterPreferenceKey, and year title UI logic. - Added
setupMonthPages(focusDate:)and ensured month ranges include selected month/year. - Fixed month view not snapping back to today when coming from year view.
- Adjusted year view to use
viewModel.selectedDatefor scroll anchoring and title.
- Reworked month view to vertical paging
videorem/CalendarConfig.swift(new)- Centralized locale/calendar config (
de_DE, Monday-first) and formatters.
- Centralized locale/calendar config (
videorem/Date+Extensions.swift- Switched to shared formatters from
CalendarConfig.
- Switched to shared formatters from
videorem/CalendarViewModel.swift- Uses
CalendarConfig.calendarand startsselectedDateat start of month.
- Uses
videorem/MonthCalendarView.swift- Accepts
monthDateandselectedDayfor correct highlighting across months.
- Accepts
videorem/MonthDayCell.swift,videorem/YearMonthCell.swift,videorem/YearCalendarView.swift,videorem/VideoListView.swift,videorem/HomeView.swift- Unified calendar usage; bumped typography sizes for legibility.
Build Fixes
videorem/VideoListRow.swift- Replaced
AVAsset(url:)withAVURLAsset(url:).
- Replaced
videorem/VideoRecorderView.swift- Marked
VideoRecorderas@MainActor. captureSessionisnonisolated, start running on a dedicatedsessionQueue.- Timer updates
currentDurationon main actor; capturedrecordingStartTimeoutside Sendable closure.
- Marked
Open Issues / Known Follow-Ups
- Confirm year view title updates correctly while scrolling (uses geometry preference).
- Verify month list + calendar sync feels right for months with no entries (current list only shows dates with entries).
- Potential UI polish: sticky year headers, event list density like Apple Calendar.
Commands Run
rg --filesrg -n ...sed -n '...' ...xcodebuildfailed due to CoreSimulator/DerivedData permission issues in sandbox.
Notes for Next Session
- If year view still misaligns, check
YearCenterPreferenceKeyusage andcoordinateSpace("yearScroll")inContentView. - If month view still jumps to today, check
setupMonthPages(focusDate:)and ensureviewModel.selectedDateis set before switching modes. - For builds, run locally with proper permissions or rerun
xcodebuildwith escalated privileges.