fix(liveness): Prevent crashing if there's an exception thrown by the SurfaceTexture #231
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue #, if available: N/A
Description of changes:
We've reports that some old devices were crashing due to this line throwing a Runtime/IllegalStateException. Instead of crashing, we will now silently handle the exception and let the rest of the flow fail back to the app flow. We can now expect the following behaviors:
If the exception happens at the first frame, it'll fail fast because there is existing logic that says "if the camera preview hasn't initialized for the first 5 seconds, throw a camera failed to open exception." Alternatively, if the exception happens after the camera has initialized, the liveness check will eventually time out with an exception thrown with the cause being "Stream idle timeoutExceeded." Both of which are reasonable messaging to the developer.
How did you test these changes?
Had to manually test this since my test devices couldn't reproduce the core issue but were able to manually force the above edge cases to see how the SDK handles it.
Documentation update required?
General Checklist
fix(liveness): message
,fix(authenticator): message
,fix(all): message
)By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.