From 15ddb03e220bf525d9c8a02ed6a01d7fca764375 Mon Sep 17 00:00:00 2001 From: Jakub Kiermasz Date: Sun, 4 Aug 2024 18:24:03 +0200 Subject: [PATCH] Start/stop engine when entering background/foreground --- Sources/Pow/Infrastructure/Haptics.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Sources/Pow/Infrastructure/Haptics.swift b/Sources/Pow/Infrastructure/Haptics.swift index fb659ff..dc74313 100644 --- a/Sources/Pow/Infrastructure/Haptics.swift +++ b/Sources/Pow/Infrastructure/Haptics.swift @@ -5,7 +5,14 @@ import CoreHaptics internal struct Haptics { private static var engine: CHHapticEngine? = { - return try? CHHapticEngine() + let engine = try? CHHapticEngine() + NotificationCenter.default.addObserver(forName: UIApplication.didEnterBackgroundNotification, object: nil, queue: nil) { _ in + engine?.stop() + } + NotificationCenter.default.addObserver(forName: UIApplication.willEnterForegroundNotification, object: nil, queue: nil) { _ in + try? engine?.start() + } + return engine }() private static var supportsHaptics = CHHapticEngine.capabilitiesForHardware().supportsHaptics