File tree Expand file tree Collapse file tree 2 files changed +12
-6
lines changed
Sources/FaceLiveness/Views/Liveness Expand file tree Collapse file tree 2 files changed +12
-6
lines changed Original file line number Diff line number Diff line change @@ -89,9 +89,7 @@ extension FaceLivenessDetectionViewModel: FaceDetectionResultHandler {
8989 noFitStartTime = Date ( )
9090 }
9191 if let elapsedTime = noFitStartTime? . timeIntervalSinceNow, abs ( elapsedTime) >= noFitTimeoutInterval {
92- self . livenessState
93- . unrecoverableStateEncountered ( . timedOut)
94- self . captureSession. stopRunning ( )
92+ handleSessionTimedOut ( )
9593 }
9694 }
9795
@@ -100,9 +98,7 @@ extension FaceLivenessDetectionViewModel: FaceDetectionResultHandler {
10098 noFitStartTime = Date ( )
10199 }
102100 if let elapsedTime = noFitStartTime? . timeIntervalSinceNow, abs ( elapsedTime) >= noFitTimeoutInterval {
103- self . livenessState
104- . unrecoverableStateEncountered ( . timedOut)
105- self . captureSession. stopRunning ( )
101+ handleSessionTimedOut ( )
106102 }
107103 }
108104
@@ -130,4 +126,12 @@ extension FaceLivenessDetectionViewModel: FaceDetectionResultHandler {
130126 }
131127 }
132128 }
129+
130+ private func handleSessionTimedOut( ) {
131+ DispatchQueue . main. async {
132+ self . livenessState
133+ . unrecoverableStateEncountered ( . timedOut)
134+ self . captureSession. stopRunning ( )
135+ }
136+ }
133137}
Original file line number Diff line number Diff line change @@ -152,6 +152,7 @@ final class FaceLivenessDetectionViewModelTestCase: XCTestCase {
152152 XCTAssertNotEqual ( self . viewModel. livenessState. state, . encounteredUnrecoverableError( . timedOut) )
153153 try await Task . sleep ( seconds: 1 )
154154 self . viewModel. handleNoFaceFit ( instruction: . tooFar( nearnessPercentage: 0.2 ) , percentage: 0.2 )
155+ try await Task . sleep ( seconds: 1 )
155156 XCTAssertEqual ( self . viewModel. livenessState. state, . encounteredUnrecoverableError( . timedOut) )
156157 }
157158
@@ -168,6 +169,7 @@ final class FaceLivenessDetectionViewModelTestCase: XCTestCase {
168169 XCTAssertNotEqual ( self . viewModel. livenessState. state, . encounteredUnrecoverableError( . timedOut) )
169170 try await Task . sleep ( seconds: 1 )
170171 self . viewModel. handleNoFaceDetected ( )
172+ try await Task . sleep ( seconds: 1 )
171173 XCTAssertEqual ( self . viewModel. livenessState. state, . encounteredUnrecoverableError( . timedOut) )
172174 }
173175}
You can’t perform that action at this time.
0 commit comments