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

View File

@@ -287,10 +287,10 @@ class TimerEngine: ObservableObject {
timerStates[identifier] = state
}
func skipNext(identifier: TimerIdentifier) {
func skipNext(identifier: TimerIdentifier) {
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)
timerStates[identifier] = TimerState(
@@ -300,18 +300,7 @@ class TimerEngine: ObservableObject {
isActive: state.isActive
)
}
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
private func getTimerInterval(for identifier: TimerIdentifier) -> Int {
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() {
for (identifier, state) in timerStates {
guard !state.isPaused else { continue }