Skip to content

Instantly share code, notes, and snippets.

@NikolaDespotoski
Created September 8, 2020 21:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save NikolaDespotoski/e2a033ac88c1d2fcae5e7b5d96a5ccbd to your computer and use it in GitHub Desktop.
Save NikolaDespotoski/e2a033ac88c1d2fcae5e7b5d96a5ccbd to your computer and use it in GitHub Desktop.
Await Google Play Services Task in coroutine
suspend fun <TResult> Task<TResult>.awaitTask() =
suspendCancellableCoroutine<Task<TResult>> { continuation ->
addOnCompleteListener {
continuation.resume(it)
}
}
suspend fun <TResult> Task<TResult>.awaitTaskResult() =
suspendCancellableCoroutine<TResult> { continuation ->
addOnCanceledListener {
continuation.cancel()
}
addOnSuccessListener {
continuation.resume(it)
}
addOnFailureListener { continuation.resumeWithException(it) }
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment