diff --git a/Sources/Manager/HapticManager.swift b/Sources/Manager/HapticManager.swift new file mode 100644 index 0000000..fbc1fc9 --- /dev/null +++ b/Sources/Manager/HapticManager.swift @@ -0,0 +1,35 @@ +// +// HapticManager.swift +// Sunday +// +// Created by Daniel Jermaine on 13/07/2025. +// + +import Foundation + +import UIKit + +final class HapticManager { + static let shared = HapticManager() + + + private init() {} + + public func vibrateForSelection() { + DispatchQueue.main.async { + let generator = UISelectionFeedbackGenerator() + generator.prepare() + generator.selectionChanged() + } + } + + public func vibrate(for type:UINotificationFeedbackGenerator.FeedbackType) { + DispatchQueue.main.async { + let generator = UINotificationFeedbackGenerator() + generator.prepare() + generator.notificationOccurred(type) + } + } + + +} diff --git a/Sources/Services/HealthManager.swift b/Sources/Services/HealthManager.swift index 85578a8..07b09a7 100644 --- a/Sources/Services/HealthManager.swift +++ b/Sources/Services/HealthManager.swift @@ -37,11 +37,13 @@ class HealthManager: ObservableObject { } func saveVitaminD(amount: Double, date: Date = Date()) { + guard isAuthorized else { requestAuthorization() + HapticManager.shared.vibrate(for: .error) return } - + HapticManager.shared.vibrate(for: .success) // Convert IU to micrograms (1 IU = 0.025 mcg) let micrograms = amount * 0.025 let quantity = HKQuantity(unit: .gramUnit(with: .micro), doubleValue: micrograms) @@ -211,4 +213,4 @@ class HealthManager: ObservableObject { healthStore.execute(query) } -} \ No newline at end of file +}