From efc1c7b4224e8851280bbbd528a2694a3927a0d4 Mon Sep 17 00:00:00 2001 From: Hariharan Mudaliar Date: Sun, 14 Dec 2025 11:19:49 +0530 Subject: [PATCH] Hide all day events thingy --- DynamicIsland/Localizable.xcstrings | 8 +++++++ .../Calendar/DynamicIslandCalendar.swift | 24 +++++++++++++++---- .../components/Settings/SettingsView.swift | 13 ++++++++-- 3 files changed, 38 insertions(+), 7 deletions(-) diff --git a/DynamicIsland/Localizable.xcstrings b/DynamicIsland/Localizable.xcstrings index f5b5b24..6f83d09 100644 --- a/DynamicIsland/Localizable.xcstrings +++ b/DynamicIsland/Localizable.xcstrings @@ -2734,6 +2734,10 @@ } } }, + "All-Day Events" : { + "comment" : "A section header that allows the user to hide all-day events from the calendar view.", + "isCommentAutoGenerated" : true + }, "Allow Access" : { "localizations" : { "ar" : { @@ -19127,6 +19131,10 @@ } } }, + "Turn this off to include all-day entries in the notch calendar and reminder live activity." : { + "comment" : "A description of why the user can disable the \"Hide all-day events\" toggle.", + "isCommentAutoGenerated" : true + }, "Two-finger swipe up on notch to close, two-finger swipe down on notch to open when **Open notch on hover** option is disabled" : { "comment" : "A footer text explaining the gesture control functionality.", "isCommentAutoGenerated" : true, diff --git a/DynamicIsland/components/Calendar/DynamicIslandCalendar.swift b/DynamicIsland/components/Calendar/DynamicIslandCalendar.swift index 81342ce..4fa4f71 100644 --- a/DynamicIsland/components/Calendar/DynamicIslandCalendar.swift +++ b/DynamicIsland/components/Calendar/DynamicIslandCalendar.swift @@ -173,6 +173,8 @@ struct CalendarView: View { @EnvironmentObject var vm: DynamicIslandViewModel @ObservedObject private var calendarManager = CalendarManager.shared @State private var selectedDate = Date() + @Default(.hideAllDayEvents) private var hideAllDayEvents + @Default(.hideCompletedReminders) private var hideCompletedReminders var body: some View { VStack(spacing: 0) { @@ -205,7 +207,9 @@ struct CalendarView: View { } let filteredEvents = EventListView.filteredEvents( - events: calendarManager.events + events: calendarManager.events, + hideCompletedReminders: hideCompletedReminders, + hideAllDayEvents: hideAllDayEvents ) if filteredEvents.isEmpty { EmptyEventsView(selectedDate: selectedDate) @@ -260,15 +264,21 @@ struct EventListView: View { let events: [EventModel] @Default(.autoScrollToNextEvent) private var autoScrollToNextEvent @Default(.showFullEventTitles) private var showFullEventTitles + @Default(.hideCompletedReminders) private var hideCompletedReminders + @Default(.hideAllDayEvents) private var hideAllDayEvents - static func filteredEvents(events: [EventModel]) -> [EventModel] { + static func filteredEvents( + events: [EventModel], + hideCompletedReminders: Bool, + hideAllDayEvents: Bool + ) -> [EventModel] { events.filter { event in if event.type.isReminder { if case .reminder(let completed) = event.type { - return !completed || !Defaults[.hideCompletedReminders] + return !completed || !hideCompletedReminders } } - if event.isAllDay && Defaults[.hideAllDayEvents] { + if event.isAllDay && hideAllDayEvents { return false } return true @@ -276,7 +286,11 @@ struct EventListView: View { } private var filteredEvents: [EventModel] { - Self.filteredEvents(events: events) + Self.filteredEvents( + events: events, + hideCompletedReminders: hideCompletedReminders, + hideAllDayEvents: hideAllDayEvents + ) } private func scrollToRelevantEvent(proxy: ScrollViewProxy) { diff --git a/DynamicIsland/components/Settings/SettingsView.swift b/DynamicIsland/components/Settings/SettingsView.swift index c3808a4..53319b9 100644 --- a/DynamicIsland/components/Settings/SettingsView.swift +++ b/DynamicIsland/components/Settings/SettingsView.swift @@ -1731,8 +1731,6 @@ struct CalendarSettings: View { .settingsHighlight(id: highlightID("Show calendar")) Section(header: Text("Event List")) { - Toggle("Hide all-day events", isOn: $hideAllDayEvents) - .settingsHighlight(id: highlightID("Hide all-day events")) Toggle("Hide completed reminders", isOn: $hideCompletedReminders) .settingsHighlight(id: highlightID("Hide completed reminders")) Toggle("Show full event titles", isOn: $showFullEventTitles) @@ -1740,6 +1738,17 @@ struct CalendarSettings: View { Toggle("Auto-scroll to next event", isOn: $autoScrollToNextEvent) .settingsHighlight(id: highlightID("Auto-scroll to next event")) } + + Section(header: Text("All-Day Events")) { + Toggle("Hide all-day events", isOn: $hideAllDayEvents) + .settingsHighlight(id: highlightID("Hide all-day events")) + .disabled(!showCalendar) + + Text("Turn this off to include all-day entries in the notch calendar and reminder live activity.") + .font(.caption) + .foregroundStyle(.secondary) + .fixedSize(horizontal: false, vertical: true) + } Section(header: Text("Reminder Live Activity")) { Defaults.Toggle("Enable reminder live activity", key: .enableReminderLiveActivity)