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 {
89
89
noFitStartTime = Date ( )
90
90
}
91
91
if let elapsedTime = noFitStartTime? . timeIntervalSinceNow, abs ( elapsedTime) >= noFitTimeoutInterval {
92
- self . livenessState
93
- . unrecoverableStateEncountered ( . timedOut)
94
- self . captureSession. stopRunning ( )
92
+ handleSessionTimedOut ( )
95
93
}
96
94
}
97
95
@@ -100,9 +98,7 @@ extension FaceLivenessDetectionViewModel: FaceDetectionResultHandler {
100
98
noFitStartTime = Date ( )
101
99
}
102
100
if let elapsedTime = noFitStartTime? . timeIntervalSinceNow, abs ( elapsedTime) >= noFitTimeoutInterval {
103
- self . livenessState
104
- . unrecoverableStateEncountered ( . timedOut)
105
- self . captureSession. stopRunning ( )
101
+ handleSessionTimedOut ( )
106
102
}
107
103
}
108
104
@@ -130,4 +126,12 @@ extension FaceLivenessDetectionViewModel: FaceDetectionResultHandler {
130
126
}
131
127
}
132
128
}
129
+
130
+ private func handleSessionTimedOut( ) {
131
+ DispatchQueue . main. async {
132
+ self . livenessState
133
+ . unrecoverableStateEncountered ( . timedOut)
134
+ self . captureSession. stopRunning ( )
135
+ }
136
+ }
133
137
}
Original file line number Diff line number Diff line change @@ -152,6 +152,7 @@ final class FaceLivenessDetectionViewModelTestCase: XCTestCase {
152
152
XCTAssertNotEqual ( self . viewModel. livenessState. state, . encounteredUnrecoverableError( . timedOut) )
153
153
try await Task . sleep ( seconds: 1 )
154
154
self . viewModel. handleNoFaceFit ( instruction: . tooFar( nearnessPercentage: 0.2 ) , percentage: 0.2 )
155
+ try await Task . sleep ( seconds: 1 )
155
156
XCTAssertEqual ( self . viewModel. livenessState. state, . encounteredUnrecoverableError( . timedOut) )
156
157
}
157
158
@@ -168,6 +169,7 @@ final class FaceLivenessDetectionViewModelTestCase: XCTestCase {
168
169
XCTAssertNotEqual ( self . viewModel. livenessState. state, . encounteredUnrecoverableError( . timedOut) )
169
170
try await Task . sleep ( seconds: 1 )
170
171
self . viewModel. handleNoFaceDetected ( )
172
+ try await Task . sleep ( seconds: 1 )
171
173
XCTAssertEqual ( self . viewModel. livenessState. state, . encounteredUnrecoverableError( . timedOut) )
172
174
}
173
175
}
You can’t perform that action at this time.
0 commit comments