Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixes and parity #18

Open
wants to merge 8 commits into
base: master
Choose a base branch
from
Open

Fixes and parity #18

wants to merge 8 commits into from

Conversation

enahum
Copy link
Contributor

@enahum enahum commented Mar 6, 2025

Summary

  • Add some changes in biometric authentication on Android that uses a compat library to ensure it works across all supported versions as well as limit the amount of failed attempts to avoid the device from locking before providing the failure feedback.
  • Block the interaction on iOS while the authentication prompt is in place.
  • Add the ability to blur the screen during the authentication prompt to obscure the information displayed on screen until authentication is successful.
  • in combination with RNN we now prevent screen captures on iOS when enabling the blur functionality, this now matches Android that shows a blank screen when a screenshot is taken or screen recording is attempted.

Note: on iOS there is no straight forward way to prevent screenshots the same way there is for screen recordings, but the UITextFields that are marked as secure are omitted from the screenshots. So the way we made it work is by identifying a view that is rendered on screen and wrapping it's layer with a UITextField that does not respond to touches so that when a screenshot is taken then all the elements being wrapped are not visible in the screenshot.

The same way we apply the wrapper, there is also a mechanism to bring the layers to it's original state and remove the protection.

The interesting thing here is that we are swizzling react-native-navigation even without a reference to the library and extending UIView, UIViewController in order to detect when new screens are being presented, this applies to screens in the current stack, new stacks created by modals and also UIWindow created for overlays.

Ticket Link

https://mattermost.atlassian.net/browse/MM-63362
https://mattermost.atlassian.net/browse/MM-63364

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
2: Dev Review Requires review by a core committer
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant