WIP: Settings

This commit is contained in:
Hariharan Mudaliar 2026-02-09 23:38:17 +05:30
commit aeed23f950
No known key found for this signature in database
GPG key ID: 025583EB0BE5640E
9 changed files with 749 additions and 3 deletions

View file

@ -40,6 +40,8 @@ class CalendarManager: ObservableObject {
@Published var reminderAuthorizationStatus: EKAuthorizationStatus = .notDetermined
@Published var lockScreenEvents: [EventModel] = []
private var lockScreenPreviewEvents: [EventModel]?
private var selectedCalendars: [CalendarModel] = []
private let calendarService = CalendarService()
private var lastEventsFetchDate: Date?
@ -253,6 +255,16 @@ class CalendarManager: ObservableObject {
}
func updateLockScreenEvents(force: Bool = false) async {
if let previewEvents = lockScreenPreviewEvents {
if lockScreenEvents != previewEvents {
withAnimation(.smooth(duration: 0.25)) {
lockScreenEvents = previewEvents
}
}
lastLockScreenEventsFetchDate = Date()
return
}
let now = Date()
if !force,
@ -320,6 +332,18 @@ class CalendarManager: ObservableObject {
lastLockScreenEventsFetchDate = Date()
}
func setLockScreenPreviewEvents(_ events: [EventModel]?) {
lockScreenPreviewEvents = events
guard let events else {
Task { await updateLockScreenEvents(force: true) }
return
}
withAnimation(.smooth(duration: 0.25)) {
lockScreenEvents = events
}
lastLockScreenEventsFetchDate = Date()
}
private func startLockScreenRefreshLoop() {
lockScreenRefreshTask?.cancel()
lockScreenRefreshTask = Task { [weak self] in