Skip to content

Commit 6041dfe

Browse files
committed
Fix frozen camera background bug
This should fix the issue where you have camera view open, background, then on foreground it is frozen with the image on the screen immediately before it was minimized.
1 parent ca519f6 commit 6041dfe

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed

SnapSafe/Screens/Camera/CameraViewModel.swift

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,12 @@ class CameraViewModel: NSObject, ObservableObject {
119119
name: UIApplication.willEnterForegroundNotification,
120120
object: nil
121121
)
122+
NotificationCenter.default.addObserver(
123+
self,
124+
selector: #selector(handleAppWillResignActive),
125+
name: UIApplication.willResignActiveNotification,
126+
object: nil
127+
)
122128
}
123129

124130
deinit {
@@ -132,6 +138,11 @@ class CameraViewModel: NSObject, ObservableObject {
132138
resetZoomLevel()
133139
}
134140

141+
@objc private func handleAppWillResignActive() {
142+
Logger.camera.info("App will resign active, stopping camera")
143+
stopCameraSession()
144+
}
145+
135146
func restartCameraSessionIfNeeded() {
136147
let session = self.session
137148
if !session.isRunning {
@@ -141,6 +152,16 @@ class CameraViewModel: NSObject, ObservableObject {
141152
}
142153
}
143154
}
155+
156+
func stopCameraSession() {
157+
let session = self.session
158+
if session.isRunning {
159+
Logger.camera.info("Stopping camera session")
160+
DispatchQueue.global(qos: .userInitiated).async {
161+
session.stopRunning()
162+
}
163+
}
164+
}
144165

145166

146167
func checkAndSetupCamera() async {

0 commit comments

Comments
 (0)