fix: oops

This commit is contained in:
Michael Freno
2026-01-18 00:31:41 -05:00
parent 37369be59b
commit e7a918443f
2 changed files with 25 additions and 39 deletions

View File

@@ -7,31 +7,17 @@
import Foundation import Foundation
/// Unified configuration for all timer types (built-in and user) struct TimerConfiguration: Codable, Equatable, Hashable, Sendable {
protocol TimerConfigurationProtocol: Codable, Equatable { var enabled: Bool
var intervalSeconds: Int { get } var intervalSeconds: Int
var enabled: Bool { get }
var id: String { get }
}
/// Configuration for a built-in timer init(enabled: Bool = true, intervalSeconds: Int) {
struct BuiltInTimerConfiguration: TimerConfigurationProtocol { self.enabled = enabled
let intervalSeconds: Int self.intervalSeconds = intervalSeconds
let enabled: Bool }
let timerType: TimerType
var id: String { var intervalMinutes: Int {
return "builtIn:\(timerType.rawValue)" get { intervalSeconds / 60 }
} set { intervalSeconds = newValue * 60 }
}
/// Configuration for a user timer
struct UserTimerConfiguration: TimerConfigurationProtocol {
let intervalSeconds: Int
let enabled: Bool
let userTimer: UserTimer
var id: String {
return "user:\(userTimer.id)"
} }
} }

View File

@@ -287,10 +287,10 @@ class TimerEngine: ObservableObject {
timerStates[identifier] = state timerStates[identifier] = state
} }
func skipNext(identifier: TimerIdentifier) { func skipNext(identifier: TimerIdentifier) {
guard let state = timerStates[identifier] else { return } guard let state = timerStates[identifier] else { return }
// Unified approach to get interval - no more special handling needed // Unified approach to get interval - no more separate handling for user timers
let intervalSeconds = getTimerInterval(for: identifier) let intervalSeconds = getTimerInterval(for: identifier)
timerStates[identifier] = TimerState( timerStates[identifier] = TimerState(
@@ -301,17 +301,6 @@ class TimerEngine: ObservableObject {
) )
} }
func dismissReminder() {
guard let reminder = activeReminder else { return }
activeReminder = nil
let identifier = reminder.identifier
skipNext(identifier: identifier)
resumeTimer(identifier: identifier)
enforceModeService?.handleReminderDismissed()
}
/// Unified way to get interval for any timer type /// Unified way to get interval for any timer type
private func getTimerInterval(for identifier: TimerIdentifier) -> Int { private func getTimerInterval(for identifier: TimerIdentifier) -> Int {
switch identifier { switch identifier {
@@ -326,6 +315,17 @@ class TimerEngine: ObservableObject {
} }
} }
func dismissReminder() {
guard let reminder = activeReminder else { return }
activeReminder = nil
let identifier = reminder.identifier
skipNext(identifier: identifier)
resumeTimer(identifier: identifier)
enforceModeService?.handleReminderDismissed()
}
private func handleTick() { private func handleTick() {
for (identifier, state) in timerStates { for (identifier, state) in timerStates {
guard !state.isPaused else { continue } guard !state.isPaused else { continue }