Merge pull request #100 from Ebullioscopic/ui/minimalistic

BugFix: Process Duplication and Feature: Focus Mode Indicator
This commit is contained in:
Hariharan Mudaliar 2025-11-13 01:45:51 +05:30 • committed by GitHub
commit adec847f68
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 19 additions and 12 deletions

View file

@ -43,7 +43,7 @@ final class ReminderLiveActivityManager: ObservableObject {
private var pendingRefreshForce = false
private var pendingRefreshToken = UUID()
private var lastRefreshDate: Date?
private let minimumRefreshInterval: TimeInterval = 10
private let minimumRefreshInterval: TimeInterval = 60
private let refreshDebounceInterval: TimeInterval = 0.3
private var refreshTaskToken = UUID()
private var hasShownCriticalSneakPeek = false
@ -291,6 +291,10 @@ final class ReminderLiveActivityManager: ObservableObject {
handleEntrySelection(first, referenceDate: referenceDate)
}
func requestRefresh(force: Bool = false) {
scheduleRefresh(force: force)
}
func refreshUpcomingReminder(force: Bool = false) async {
guard Defaults[.enableReminderLiveActivity] else {
deactivateReminder()
@ -341,7 +345,7 @@ final class ReminderLiveActivityManager: ObservableObject {
return
}
if entry.triggerDate <= date {
if entry.triggerDate <= date {
if entry.triggerDate > entry.event.start {
entry = ReminderEntry(event: entry.event, triggerDate: entry.event.start, leadTime: entry.leadTime)
nextReminder = entry
@ -365,14 +369,14 @@ final class ReminderLiveActivityManager: ObservableObject {
if !hasShownCriticalSneakPeek {
let displayDuration = min(criticalWindow, max(timeRemaining - 2, 0))
if displayDuration > 0 {
DynamicIslandViewCoordinator.shared.toggleSneakPeek(
status: true,
type: .reminder,
duration: displayDuration,
value: 0,
icon: ReminderLiveActivityManager.criticalIconName
)
hasShownCriticalSneakPeek = true
DynamicIslandViewCoordinator.shared.toggleSneakPeek(
status: true,
type: .reminder,
duration: displayDuration,
value: 0,
icon: ReminderLiveActivityManager.criticalIconName
)
hasShownCriticalSneakPeek = true
}
}
} else {

View file

@ -157,8 +157,11 @@ class DynamicIslandViewModel: NSObject, ObservableObject {
self.notchState = .open
}
// Force music information update when notch is opened
MusicManager.shared.forceUpdate()
// Force music information update when notch is opened
MusicManager.shared.forceUpdate()
// Refresh reminders immediately to surface the latest state when the notch opens
ReminderLiveActivityManager.shared.requestRefresh(force: true)
}
private func calculateDynamicNotchSize() -> CGSize {