-
Notifications
You must be signed in to change notification settings - Fork 29
[MOB-11167] Add timeout for crypto operations to solve ANRs and config to disable encryption altogether #899
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
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
…- Introduced `disableKeychainEncryption` flag in `IterableConfig` to allow disabling encryption for keychain storage.- Updated `IterableKeychain` to handle encryption based on the new flag.- Added tests for the new configuration option and keychain behavior.
Ayyanchira
reviewed
Apr 4, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a nit pick
iterableapi/src/main/java/com/iterable/iterableapi/IterableConfig.java
Outdated
Show resolved
Hide resolved
evantk91
approved these changes
Apr 4, 2025
…ion error handling
…ableKeychain- Update decryption error message to prompt user login- Set encryptionDisabled flag to true upon decryption failure
…move redundant key reset logic.
Moved initialization of sharedPref to top. Making encryptionDisabled to var to allow changes later
96a4965
to
030973e
Compare
This was
linked to
issues
Apr 14, 2025
Internal working of Keychain at this commit stage still assumes the default is false. Hence this commit cant be merged as IterableConfig and Keychain work on different basis
Inverting the defaults for easy naming. Modified the Test suite as well to be aware of defaults.
Mob 11167 fix anr renaming config
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
🔹 Jira Ticket(s) if any
✏️ Description
This PR fixes an ANR (Application Not Responding) issue that occurs during app initialization when the Android KeyStore operations block the main thread.
Key changes:
Added a background thread executor for all crypto operations in IterableKeychain
Implemented a 500ms timeout mechanism for all crypto operations
Added error handling for timeout scenarios with appropriate fallbacks
Ensured resetKeys operation also respects the timeout limit
This approach minimizes code changes while ensuring that crypto operations never block the main thread during app startup, eliminating the ANR
Added config flag to disable encryption altogether.