in facebook-common/src/main/java/com/facebook/login/LoginManager.kt [233:276]
open fun onActivityResult(
resultCode: Int,
data: Intent?,
callback: FacebookCallback<LoginResult>? = null
): Boolean {
var exception: FacebookException? = null
var accessToken: AccessToken? = null
var authenticationToken: AuthenticationToken? = null
var code = LoginClient.Result.Code.ERROR
var loggingExtras: Map<String, String>? = null
var originalRequest: LoginClient.Request? = null
var isCanceled = false
if (data != null) {
data.setExtrasClassLoader(LoginClient.Result::class.java.classLoader)
val result: LoginClient.Result? = data.getParcelableExtra(LoginFragment.RESULT_KEY)
if (result != null) {
originalRequest = result.request
code = result.code
if (resultCode == Activity.RESULT_OK) {
if (result.code == LoginClient.Result.Code.SUCCESS) {
accessToken = result.token
authenticationToken = result.authenticationToken
} else {
exception = FacebookAuthorizationException(result.errorMessage)
}
} else if (resultCode == Activity.RESULT_CANCELED) {
isCanceled = true
}
loggingExtras = result.loggingExtras
}
} else if (resultCode == Activity.RESULT_CANCELED) {
isCanceled = true
code = LoginClient.Result.Code.CANCEL
}
if (exception == null && accessToken == null && !isCanceled) {
exception = FacebookException("Unexpected call to LoginManager.onActivityResult")
}
val wasLoginActivityTried = true
val context: Context? = null // Sadly, there is no way to get activity context at this point.
logCompleteLogin(
context, code, loggingExtras, exception, wasLoginActivityTried, originalRequest)
finishLogin(accessToken, authenticationToken, originalRequest, exception, isCanceled, callback)
return true
}