Skip to content

Commit 4370db9

Browse files
committed
MacOS 13: EKSource sometimes has nil title
MacOS 13 sometimes returns nil for non-iCloud source titles. Provide a dummy source title instead.
1 parent a7d640a commit 4370db9

File tree

2 files changed

+9
-4
lines changed

2 files changed

+9
-4
lines changed

Itsycal/EventCenter.m

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -193,16 +193,20 @@ - (void)_fetchSourcesAndCalendars {
193193
NSMutableArray *sourcesAndCalendars = [NSMutableArray new];
194194
NSString *currentSourceTitle = @"";
195195
for (EKCalendar *calendar in calendars) {
196+
NSString *calendarSourceTitle = calendar.source.title;
197+
// (!) Should never hit this case, but MacOS 13 sometimes returns
198+
// nil for non-iCloud source titles. Use a dummy title instead.
199+
if (!calendar.source.title) calendarSourceTitle = @"???";
196200
if (!calendar.color) {
197201
// Skip calendars where the color is nil.
198202
// This normally doesn't happen, but there are some
199203
// edge cases where it does.
200204
// See: github.com/sfsam/Itsycal/issues/152
201205
continue;
202206
}
203-
if (![calendar.source.title isEqualToString:currentSourceTitle]) {
204-
[sourcesAndCalendars addObject:calendar.source.title];
205-
currentSourceTitle = calendar.source.title;
207+
if (![calendarSourceTitle isEqualToString:currentSourceTitle]) {
208+
[sourcesAndCalendars addObject:calendarSourceTitle];
209+
currentSourceTitle = calendarSourceTitle;
206210
}
207211
CalendarInfo *calInfo = [CalendarInfo new];
208212
calInfo.calendar = calendar;

Itsycal/EventViewController.m

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -269,7 +269,8 @@ - (void)viewWillAppear
269269
[_calPopup.menu addItem:[NSMenuItem separatorItem]];
270270
}
271271
NSMenuItem *sourceItem = [NSMenuItem new];
272-
sourceItem.title = calInfo.calendar.source.title;
272+
// MacOS 13 sometimes returns nil for non-iCloud source titles.
273+
sourceItem.title = calInfo.calendar.source.title ?: @"???";
273274
sourceItem.enabled = NO;
274275
[_calPopup.menu addItem:sourceItem];
275276
currentSource = calInfo.calendar.source;

0 commit comments

Comments
 (0)