fun buildRequestForSession()

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
  }