From 00c57744338de86a7871297ab26b1aa280528c57 Mon Sep 17 00:00:00 2001 From: Hariharan Mudaliar Date: Tue, 11 Nov 2025 00:41:05 +0530 Subject: [PATCH] Fix UI Issues --- DynamicIsland/ContentView.swift | 20 ++++++++++++------- .../Calendar/ReminderLiveActivity.swift | 6 +++--- 2 files changed, 16 insertions(+), 10 deletions(-) diff --git a/DynamicIsland/ContentView.swift b/DynamicIsland/ContentView.swift index 40a2613..e0a688c 100644 --- a/DynamicIsland/ContentView.swift +++ b/DynamicIsland/ContentView.swift @@ -478,10 +478,10 @@ struct ContentView: View { .fill(chipColor) .frame(width: 8, height: 12) MarqueeText( - .constant(reminderSneakPeekText(for: reminder)), + .constant(reminderSneakPeekText(for: reminder, now: reminderManager.currentDate)), textColor: reminderColor(for: reminder, now: reminderManager.currentDate), minDuration: 1, - frameWidth: max(0, geo.size.width - 18) + frameWidth: max(0, geo.size.width - 14) ) } } @@ -537,18 +537,24 @@ struct ContentView: View { return Color(nsColor: reminder.event.calendar.color).ensureMinimumBrightness(factor: 0.7) } - private func reminderSneakPeekText(for entry: ReminderLiveActivityManager.ReminderEntry) -> String { + private func reminderSneakPeekText(for entry: ReminderLiveActivityManager.ReminderEntry, now: Date) -> String { let title = entry.event.title.isEmpty ? "Upcoming Reminder" : entry.event.title - let remaining = max(entry.event.start.timeIntervalSince(reminderManager.currentDate), 0) + let remaining = max(entry.event.start.timeIntervalSince(now), 0) + let window = TimeInterval(Defaults[.reminderSneakPeekDuration]) + + if window > 0 && remaining <= window { + return "\(title) • now" + } + let minutes = Int(ceil(remaining / 60)) let timeString = reminderTimeFormatter.string(from: entry.event.start) if minutes <= 0 { - return "\(title) • starts now @ \(timeString)" + return "\(title) • now • \(timeString)" } else if minutes == 1 { - return "\(title) • in 1 min @ \(timeString)" + return "\(title) • in 1 min • \(timeString)" } else { - return "\(title) • in \(minutes) min @ \(timeString)" + return "\(title) • in \(minutes) min • \(timeString)" } } diff --git a/DynamicIsland/components/Calendar/ReminderLiveActivity.swift b/DynamicIsland/components/Calendar/ReminderLiveActivity.swift index f2be48d..837a4b0 100644 --- a/DynamicIsland/components/Calendar/ReminderLiveActivity.swift +++ b/DynamicIsland/components/Calendar/ReminderLiveActivity.swift @@ -22,7 +22,7 @@ struct ReminderLiveActivity: View { @Default(.reminderPresentationStyle) private var presentationStyle - private let wingPadding: CGFloat = 22 + private let wingPadding: CGFloat = 16 private let ringStrokeWidth: CGFloat = 3 private var notchContentHeight: CGFloat { @@ -181,11 +181,11 @@ struct ReminderLiveActivity: View { } private var iconDiameter: CGFloat { - max(notchContentHeight - 6, 28) + max(notchContentHeight - 8, 26) } private var ringDiameter: CGFloat { - max(min(notchContentHeight - 10, 24), 18) + max(min(notchContentHeight - 12, 22), 16) } private func measureTextWidth(_ text: String, font: ReminderFont) -> CGFloat {