private void sendImageRequest(boolean allowCachedResponse) {
    try {
      ImageRequest.Builder requestBuilder =
          new ImageRequest.Builder(
              getContext(), ImageRequest.getProfilePictureUrl(profileId, queryWidth, queryHeight));

      ImageRequest request =
          requestBuilder
              .setAllowCachedRedirects(allowCachedResponse)
              .setCallerTag(this)
              .setCallback(
                  new ImageRequest.Callback() {
                    @Override
                    public void onCompleted(ImageResponse response) {
                      processResponse(response);
                    }
                  })
              .build();

      // Make sure to cancel the old request before sending the new one to prevent
      // accidental cancellation of the new request. This could happen if the URL and
      // caller tag stayed the same.
      if (lastRequest != null) {
        ImageDownloader.cancelRequest(lastRequest);
      }
      lastRequest = request;

      ImageDownloader.downloadAsync(request);
    } catch (MalformedURLException e) {
      Logger.log(LoggingBehavior.REQUESTS, Log.ERROR, TAG, e.toString());
    }
  }
  private void updateUI() {
    if (!isAdded()) {
      return;
    }
    if (isSessionOpen()) {
      connectedStateLabel.setTextColor(
          getResources()
              .getColor(
                  AirFacebookExtension.context.getResourceId(
                      "color.com_facebook_usersettingsfragment_connected_text_color")));
      connectedStateLabel.setShadowLayer(
          1f,
          0f,
          -1f,
          getResources()
              .getColor(
                  AirFacebookExtension.context.getResourceId(
                      "color.com_facebook_usersettingsfragment_connected_shadow_color")));

      if (user != null) {
        ImageRequest request = getImageRequest();
        if (request != null) {
          URL requestUrl = request.getImageUrl();
          // Do we already have the right picture? If so, leave it alone.
          if (!requestUrl.equals(connectedStateLabel.getTag())) {
            if (user.getId().equals(userProfilePicID)) {
              connectedStateLabel.setCompoundDrawables(null, userProfilePic, null, null);
              connectedStateLabel.setTag(requestUrl);
            } else {
              ImageDownloader.downloadAsync(request);
            }
          }
        }
        connectedStateLabel.setText(user.getName());
      } else {
        connectedStateLabel.setText(
            getResources()
                .getString(
                    AirFacebookExtension.context.getResourceId(
                        "string.com_facebook_usersettingsfragment_logged_in")));
        Drawable noProfilePic =
            getResources()
                .getDrawable(
                    AirFacebookExtension.context.getResourceId(
                        "drawable.com_facebook_profile_default_icon"));
        noProfilePic.setBounds(
            0,
            0,
            getResources()
                .getDimensionPixelSize(
                    AirFacebookExtension.context.getResourceId(
                        "dimen.com_facebook_usersettingsfragment_profile_picture_width")),
            getResources()
                .getDimensionPixelSize(
                    AirFacebookExtension.context.getResourceId(
                        "dimen.com_facebook_usersettingsfragment_profile_picture_height")));
        connectedStateLabel.setCompoundDrawables(null, noProfilePic, null, null);
      }
    } else {
      int textColor =
          getResources()
              .getColor(
                  AirFacebookExtension.context.getResourceId(
                      "color.com_facebook_usersettingsfragment_not_connected_text_color"));
      connectedStateLabel.setTextColor(textColor);
      connectedStateLabel.setShadowLayer(0f, 0f, 0f, textColor);
      connectedStateLabel.setText(
          getResources()
              .getString(
                  AirFacebookExtension.context.getResourceId(
                      "string.com_facebook_usersettingsfragment_not_logged_in")));
      connectedStateLabel.setCompoundDrawables(null, null, null, null);
      connectedStateLabel.setTag(null);
    }
  }