mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-28 23:54:32 +00:00
WIP: Settings
This commit is contained in:
parent
105b0466a4
commit
aeed23f950
9 changed files with 749 additions and 3 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue