From 2f03440d3547aa5e13fd820cc7aa66336b6f8654 Mon Sep 17 00:00:00 2001 From: Hariharan Mudaliar Date: Tue, 2 Dec 2025 17:44:32 +0530 Subject: [PATCH] BugFix: Calendar Live Activity not showing up --- DynamicIsland/managers/CalendarManager.swift | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/DynamicIsland/managers/CalendarManager.swift b/DynamicIsland/managers/CalendarManager.swift index 25440e9..de2ecfa 100644 --- a/DynamicIsland/managers/CalendarManager.swift +++ b/DynamicIsland/managers/CalendarManager.swift @@ -20,6 +20,7 @@ class CalendarManager: ObservableObject { @Published var allCalendars: [CalendarModel] = [] @Published var eventCalendars: [CalendarModel] = [] @Published var reminderLists: [CalendarModel] = [] + @Published var selectedCalendarIDs: Set = [] @Published var calendarAuthorizationStatus: EKAuthorizationStatus = .notDetermined @Published var reminderAuthorizationStatus: EKAuthorizationStatus = .notDetermined private var selectedCalendars: [CalendarModel] = [] @@ -63,6 +64,7 @@ class CalendarManager: ObservableObject { self.reminderLists = all.filter { $0.isReminder } self.allCalendars = all // for legacy compatibility, can be removed if not needed updateSelectedCalendars() + await updateEvents() } private func bootstrapAuthorizations() async { @@ -146,16 +148,18 @@ class CalendarManager: ObservableObject { } func updateSelectedCalendars() { - selectedCalendars = allCalendars.filter { getCalendarSelected($0) } + switch Defaults[.calendarSelectionState] { + case .all: + selectedCalendarIDs = Set(allCalendars.map { $0.id }) + case .selected(let identifiers): + selectedCalendarIDs = identifiers + } + + selectedCalendars = allCalendars.filter { selectedCalendarIDs.contains($0.id) } } func getCalendarSelected(_ calendar: CalendarModel) -> Bool { - switch Defaults[.calendarSelectionState] { - case .all: - return true - case .selected(let identifiers): - return identifiers.contains(calendar.id) - } + selectedCalendarIDs.contains(calendar.id) } func setCalendarSelected(_ calendar: CalendarModel, isSelected: Bool) async {