[SDK-3346] Implemented coroutine support #563
Merged
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.
Changes
We have added 2 new APIs
await()
for all requestsawaitCredentials()
for credential managerThe
await()
requests are called over IO thread and switched usingswitchRequestContext
awaitCredentials
usesuspendCancellableCoroutine
to continue, this is especially useful when waiting for device unlock inSecureCredentialManager
Reference
Credential Manager is an abstract class and hence the added APIs are directly added to the subclass similar to this PR to avoid breaking changes - #514
This will be cleaned up in the next major release.
Testing
We have added unit tests, these tests are marked with
@ExperimentalCoroutineApi
, this shouldn't be an issue and they are marked only for test methods.