in facebook-core/src/main/java/com/facebook/appevents/AppEventQueue.kt [172:216]
fun buildRequestForSession(
accessTokenAppId: AccessTokenAppIdPair,
appEvents: SessionEventsState,
limitEventUsage: Boolean,
flushState: FlushStatistics
): GraphRequest? {
val applicationId = accessTokenAppId.applicationId
val fetchedAppSettings = queryAppSettings(applicationId, false)
val postRequest =
newPostRequest(null, String.format("%s/activities", applicationId), null, null)
postRequest.setForceApplicationRequest(true)
var requestParameters = postRequest.parameters
if (requestParameters == null) {
requestParameters = Bundle()
}
requestParameters.putString("access_token", accessTokenAppId.accessTokenString)
val pushNotificationsRegistrationId = getPushNotificationsRegistrationId()
if (pushNotificationsRegistrationId != null) {
requestParameters.putString("device_token", pushNotificationsRegistrationId)
}
val installReferrer = AppEventsLoggerImpl.getInstallReferrer()
if (installReferrer != null) {
requestParameters.putString("install_referrer", installReferrer)
}
postRequest.parameters = requestParameters
var supportsImplicitLogging = false
if (fetchedAppSettings != null) {
supportsImplicitLogging = fetchedAppSettings.supportsImplicitLogging()
}
val numEvents =
appEvents.populateRequest(
postRequest,
FacebookSdk.getApplicationContext(),
supportsImplicitLogging,
limitEventUsage)
if (numEvents == 0) {
return null
}
flushState.numEvents += numEvents
postRequest.callback =
GraphRequest.Callback { response ->
handleResponse(accessTokenAppId, postRequest, response, appEvents, flushState)
}
return postRequest
}