HapticManager.swift 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. import UIKit
  2. /// Centralized haptic feedback manager for CelestiaTrace.
  3. enum HapticManager {
  4. enum HapticType {
  5. case recordStart
  6. case recordStop
  7. case photoCapture
  8. case noteAdded
  9. case tapFeedback
  10. }
  11. static func trigger(_ type: HapticType) {
  12. switch type {
  13. case .recordStart:
  14. let generator = UIImpactFeedbackGenerator(style: .heavy)
  15. generator.prepare()
  16. generator.impactOccurred()
  17. case .recordStop:
  18. let generator = UINotificationFeedbackGenerator()
  19. generator.prepare()
  20. generator.notificationOccurred(.success)
  21. case .photoCapture:
  22. let generator = UIImpactFeedbackGenerator(style: .medium)
  23. generator.prepare()
  24. generator.impactOccurred()
  25. case .noteAdded:
  26. let generator = UIImpactFeedbackGenerator(style: .light)
  27. generator.prepare()
  28. generator.impactOccurred()
  29. case .tapFeedback:
  30. let generator = UIImpactFeedbackGenerator(style: .soft)
  31. generator.prepare()
  32. generator.impactOccurred()
  33. }
  34. }
  35. }